|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
29 #include <ns3/fatal-error.h>
31 #include <ns3/abort.h>
33 #include <ns3/pointer.h>
34 #include <ns3/object-map.h>
35 #include <ns3/object-factory.h>
36 #include <ns3/simulator.h>
38 #include <ns3/lte-radio-bearer-info.h>
39 #include <ns3/eps-bearer-tag.h>
40 #include <ns3/packet.h>
42 #include <ns3/lte-rlc.h>
43 #include <ns3/lte-rlc-tm.h>
44 #include <ns3/lte-rlc-um.h>
45 #include <ns3/lte-rlc-am.h>
46 #include <ns3/lte-pdcp.h>
85 , m_componentCarrierId {componentCarrierId}
123 "INITIAL_RANDOM_ACCESS",
125 "CONNECTION_REJECTED",
127 "CONNECTED_NORMALLY",
128 "CONNECTION_RECONFIGURATION",
129 "CONNECTION_REESTABLISHMENT",
130 "HANDOVER_PREPARATION",
132 "HANDOVER_PATH_SWITCH",
156 : m_lastAllocatedDrbid (0),
159 m_componentCarrierId (componentCarrierId),
160 m_lastRrcTransactionIdentifier (0),
163 m_pendingRrcConnectionReconfiguration (false),
166 m_needPhyMacConfiguration (false),
167 m_caSupportConfigured (false),
168 m_pendingStartDataRadioBearers (false)
189 for (uint8_t i = 0; i <
m_rrc->m_numberOfComponentCarriers; i++)
204 m_srb0 = CreateObject<LteSignalingRadioBearerInfo> ();
206 m_srb0->m_srbIdentity = 0;
216 lcinfo.
isGbr =
false;
226 m_rrc->m_ccmRrcSapProvider->AddLc (lcinfo, lteMacSapUser);
240 pdcp->SetLcId (lcid);
245 m_srb1 = CreateObject<LteSignalingRadioBearerInfo> ();
248 m_srb1->m_srbIdentity = 1;
249 m_srb1->m_logicalChannelConfig.priority = 1;
250 m_srb1->m_logicalChannelConfig.prioritizedBitRateKbps = 100;
251 m_srb1->m_logicalChannelConfig.bucketSizeDurationMs = 100;
252 m_srb1->m_logicalChannelConfig.logicalChannelGroup = 0;
268 m_rrc->m_ccmRrcSapProvider->AddLc (lcinfo, MacSapUserForRlc);
282 for (uint16_t i = 0; i <
m_rrc->m_numberOfComponentCarriers; i++)
284 m_rrc->m_cmacSapProvider.at (i)->UeUpdateConfigurationReq (req);
289 Time maxConnectionDelay;
325 m_rrc->m_x2uTeidInfoMap.erase (it->second->m_gtpTeid);
334 .AddConstructor<UeManager> ()
335 .AddAttribute (
"DataRadioBearerMap",
"List of UE DataRadioBearerInfo by DRBID.",
338 MakeObjectMapChecker<LteDataRadioBearerInfo> ())
339 .AddAttribute (
"Srb0",
"SignalingRadioBearerInfo for SRB0",
342 MakePointerChecker<LteSignalingRadioBearerInfo> ())
343 .AddAttribute (
"Srb1",
"SignalingRadioBearerInfo for SRB1",
346 MakePointerChecker<LteSignalingRadioBearerInfo> ())
347 .AddAttribute (
"C-RNTI",
348 "Cell Radio Network Temporary Identifier",
352 MakeUintegerChecker<uint16_t> ())
353 .AddTraceSource (
"StateTransition",
354 "fired upon every UE state transition seen by the "
355 "UeManager at the eNB RRC",
357 "ns3::UeManager::StateTracedCallback")
358 .AddTraceSource (
"DrbCreated",
359 "trace fired after DRB is created",
361 "ns3::UeManager::ImsiCidRntiLcIdTracedCallback")
403 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");
404 drbInfo->m_epsBearer = bearer;
405 drbInfo->m_epsBearerIdentity = bid;
406 drbInfo->m_drbIdentity = drbid;
407 drbInfo->m_logicalChannelIdentity = lcid;
408 drbInfo->m_gtpTeid = gtpTeid;
409 drbInfo->m_transportLayerAddress = transportLayerAddress;
416 x2uTeidInfo.
drbid = drbid;
417 std::pair<std::map<uint32_t, LteEnbRrc::X2uTeidInfo>::iterator,
bool>
418 ret =
m_rrc->m_x2uTeidInfoMap.insert (std::pair<uint32_t, LteEnbRrc::X2uTeidInfo> (gtpTeid, x2uTeidInfo));
419 NS_ASSERT_MSG (ret.second ==
true,
"overwriting a pre-existing entry in m_x2uTeidInfoMap");
430 drbInfo->m_rlc = rlc;
440 pdcp->SetLcId (lcid);
444 drbInfo->m_pdcp = pdcp;
449 std::vector<LteCcmRrcSapProvider::LcsConfig> lcOnCcMapping =
m_rrc->m_ccmRrcSapProvider->SetupDataRadioBearer (bearer, bearerId,
m_rnti, lcid,
m_rrc->GetLogicalChannelGroup (bearer), rlc->
GetLteMacSapUser ());
462 std::vector<LteCcmRrcSapProvider::LcsConfig>::iterator itLcOnCcMapping = lcOnCcMapping.begin ();
463 NS_ASSERT_MSG (itLcOnCcMapping != lcOnCcMapping.end (),
"Problem");
464 for (itLcOnCcMapping = lcOnCcMapping.begin (); itLcOnCcMapping != lcOnCcMapping.end (); ++itLcOnCcMapping)
466 NS_LOG_DEBUG (
this <<
" RNTI " << itLcOnCcMapping->lc.rnti <<
"Lcid " << (uint16_t) itLcOnCcMapping->lc.lcId <<
" lcGroup " << (uint16_t) itLcOnCcMapping->lc.lcGroup <<
" ComponentCarrierId " << itLcOnCcMapping->componentCarrierId);
467 uint8_t index = itLcOnCcMapping->componentCarrierId;
470 m_rrc->m_cmacSapProvider.at (index)->AddLc (lcinfo, msu);
471 m_rrc->m_ccmRrcSapProvider->AddLc (lcinfo, msu);
483 drbInfo->m_logicalChannelIdentity = lcid;
484 drbInfo->m_logicalChannelConfig.priority =
m_rrc->GetLogicalChannelPriority (bearer);
485 drbInfo->m_logicalChannelConfig.logicalChannelGroup =
m_rrc->GetLogicalChannelGroup (bearer);
488 drbInfo->m_logicalChannelConfig.prioritizedBitRateKbps = bearer.
gbrQosInfo.
gbrUl;
492 drbInfo->m_logicalChannelConfig.prioritizedBitRateKbps = 0;
494 drbInfo->m_logicalChannelConfig.bucketSizeDurationMs = 1000;
519 std::map <uint8_t, Ptr<LteDataRadioBearerInfo> >::iterator drbIt =
m_drbMap.find (*drbIdIt);
521 drbIt->second->m_rlc->Initialize ();
522 if (drbIt->second->m_pdcp)
524 drbIt->second->m_pdcp->Initialize ();
536 std::map <uint8_t, Ptr<LteDataRadioBearerInfo> >::iterator it =
m_drbMap.find (drbid);
537 NS_ASSERT_MSG (it !=
m_drbMap.end (),
"request to remove radio bearer with unknown drbid " << drbid);
540 m_rrc->m_x2uTeidInfoMap.erase (it->second->m_gtpTeid);
543 std::vector<uint8_t> ccToRelease =
m_rrc->m_ccmRrcSapProvider->ReleaseDataRadioBearer (
m_rnti, lcid);
544 std::vector<uint8_t>::iterator itCcToRelease = ccToRelease.begin ();
545 NS_ASSERT_MSG (itCcToRelease != ccToRelease.end (),
"request to remove radio bearer with unknown drbid (ComponentCarrierManager)");
546 for (itCcToRelease = ccToRelease.begin (); itCcToRelease != ccToRelease.end (); ++itCcToRelease)
548 m_rrc->m_cmacSapProvider.at (*itCcToRelease)->ReleaseLc (
m_rnti, lcid);
567 m_rrc->m_rrcSapUser->SendRrcConnectionReconfiguration (
m_rnti, msg);
576 ueManager->ReleaseDataRadioBearer (bearerId);
587 if (
m_rrc->m_s1SapProvider != 0)
591 NS_LOG_DEBUG (
"Sending release of bearer id : " << (uint16_t) (it.first)
593 << (uint16_t) (it.second->m_logicalChannelIdentity));
595 m_rrc->m_s1SapProvider->DoSendReleaseIndication (
GetImsi (), rnti, it.first);
622 m_rrc->m_rrcSapUser->SendRrcConnectionReconfiguration (
m_rnti, msg);
671 params.
rrcContext =
m_rrc->m_rrcSapUser->EncodeHandoverPreparationInformation (hpi);
679 m_rrc->m_x2SapProvider->SendHandoverRequest (params);
713 NS_FATAL_ERROR (
"The source and target eNBs have unequal number of component carriers. Target eNB CCs = "
715 <<
" Source eNB CCs = " <<
m_rrc->m_numberOfComponentCarriers);
718 m_rrc->m_rrcSapUser->SendRrcConnectionReconfiguration (
m_rnti, handoverCommand);
740 if (0 != drbIt->second->m_rlc->GetObject<
LteRlcAm> ())
749 m_rrc->m_x2SapProvider->SendSnStatusTransfer (sst);
777 std::map<uint8_t, Ptr<LteDataRadioBearerInfo> >::iterator it =
m_drbMap.find (drbid);
781 if (bearerInfo != NULL)
807 NS_LOG_LOGIC (
"queueing data on PDCP for transmission over the air");
822 NS_LOG_LOGIC (
"forwarding data to target eNB over X2-U");
829 m_rrc->m_x2SapProvider->SendUeData (params);
839 std::vector<EpcX2Sap::ErabToBeSetupItem>
843 std::vector<EpcX2Sap::ErabToBeSetupItem> ret;
849 etbsi.
erabId = it->second->m_epsBearerIdentity;
853 etbsi.
gtpTeid = it->second->m_gtpTeid;
854 ret.push_back (etbsi);
866 NS_LOG_INFO (
"Send UE CONTEXT RELEASE from target eNB to source eNB");
872 m_rrc->m_x2SapProvider->SendUeContextRelease (ueCtxReleaseParams);
891 NS_LOG_INFO (
"target eNB sent HO preparation failure, aborting HO");
905 for (std::vector<EpcX2Sap::ErabsSubjectToStatusTransferItem>::iterator erabIt
949 if (
m_rrc->m_admitRrcConnectionRequest ==
true)
957 m_rrc->m_rrcSapUser->SendRrcConnectionSetup (
m_rnti, msg2);
961 m_rrc->m_connectionSetupTimeoutDuration,
972 m_rrc->m_rrcSapUser->SendRrcConnectionReject (
m_rnti, rejectMsg);
975 m_rrc->m_connectionRejectedTimeoutDuration,
1002 if (
m_rrc->m_s1SapProvider != 0)
1034 for (uint8_t i = 0; i <
m_rrc->m_numberOfComponentCarriers; i++)
1036 m_rrc->m_cmacSapProvider.at (i)->UeUpdateConfigurationReq (req);
1041 m_rrc->m_cphySapProvider.at (i)->SetPa (
m_rnti, paDouble);
1066 std::pair <uint8_t, Ptr<Packet> > bidPacket =
m_packetBuffer.front ();
1067 uint8_t bid = bidPacket.first;
1070 NS_LOG_LOGIC (
"queueing data on PDCP for transmission over the air");
1076 NS_LOG_INFO (
"Send PATH SWITCH REQUEST to the MME");
1088 b.
teid = it->second->m_gtpTeid;
1091 m_rrc->m_s1SapProvider->PathSwitchRequest (params);
1122 m_rrc->m_rrcSapUser->SendRrcConnectionReestablishment (
m_rnti, msg2);
1152 <<
" RSRP " << (it->haveRsrpResult ? (uint16_t) it->rsrpResult : 255)
1153 <<
" RSRQ " << (it->haveRsrqResult ? (uint16_t) it->rsrqResult : 255));
1156 if ((
m_rrc->m_handoverManagementSapProvider != 0)
1157 && (
m_rrc->m_handoverMeasIds.find (measId) !=
m_rrc->m_handoverMeasIds.end ()))
1160 m_rrc->m_handoverManagementSapProvider->ReportUeMeas (
m_rnti,
1164 if ((
m_rrc->m_ccmRrcSapProvider != 0)
1165 && (
m_rrc->m_componentCarrierMeasIds.find (measId) !=
m_rrc->m_componentCarrierMeasIds.end ()))
1172 if ((
m_rrc->m_anrSapProvider != 0)
1173 && (
m_rrc->m_anrMeasIds.find (measId) !=
m_rrc->m_anrMeasIds.end ()))
1179 if ((
m_rrc->m_ffrRrcSapProvider.size () > 0)
1180 && (
m_rrc->m_ffrMeasIds.find (measId) !=
m_rrc->m_ffrMeasIds.end ()))
1228 if (params.
lcid > 2)
1269 for (uint16_t i = 0; i <
m_rrc->m_numberOfComponentCarriers; i++)
1271 m_rrc->m_cphySapProvider.at (i)->SetSrsConfigurationIndex (
m_rnti, srsConfIndex);
1319 const uint8_t MAX_DRB_ID = 32;
1322 drbid = (drbid + 1) % MAX_DRB_ID)
1329 drbInfo->m_drbIdentity = drbid;
1344 std::map<uint8_t, Ptr<LteDataRadioBearerInfo> >::iterator it =
m_drbMap.find (drbid);
1354 std::map <uint8_t, Ptr<LteDataRadioBearerInfo> >::iterator it =
m_drbMap.find (drbid);
1355 NS_ASSERT_MSG (it !=
m_drbMap.end (),
"request to remove radio bearer with unknown drbid " << drbid);
1408 dtam.
rlcConfig = it->second->m_rlcConfig;
1523 std::list<LteRrcSap::SCellToAddMod> SccCon;
1527 for (
auto &it:
m_rrc->m_componentCarrierPhyConf)
1529 uint8_t ccId = it.first;
1584 SccCon.push_back (component);
1599 : m_x2SapProvider (0),
1600 m_cmacSapProvider (0),
1601 m_handoverManagementSapProvider (0),
1602 m_ccmRrcSapProvider (0),
1603 m_anrSapProvider (0),
1604 m_ffrRrcSapProvider (0),
1606 m_macSapProvider (0),
1607 m_s1SapProvider (0),
1608 m_cphySapProvider (0),
1609 m_configured (false),
1610 m_lastAllocatedRnti (0),
1611 m_srsCurrentPeriodicityId (0),
1612 m_lastAllocatedConfigurationIndex (0),
1613 m_reconfigureUes (false),
1614 m_numberOfComponentCarriers (0),
1615 m_carriersConfigured (false)
1635 "are not equal to the number of he component carrier configuration provided");
1688 .SetGroupName(
"Lte")
1690 .AddAttribute (
"UeMap",
"List of UeManager by C-RNTI.",
1693 MakeObjectMapChecker<UeManager> ())
1694 .AddAttribute (
"DefaultTransmissionMode",
1695 "The default UEs' transmission mode (0: SISO)",
1698 MakeUintegerChecker<uint8_t> ())
1699 .AddAttribute (
"EpsBearerToRlcMapping",
1700 "Specify which type of RLC will be used for each type of EPS bearer. ",
1707 .AddAttribute (
"SystemInformationPeriodicity",
1708 "The interval for sending system information (Time value)",
1714 .AddAttribute (
"SrsPeriodicity",
1715 "The SRS periodicity in milliseconds",
1719 MakeUintegerChecker<uint32_t> ())
1722 .AddAttribute (
"ConnectionRequestTimeoutDuration",
1723 "After a RA attempt, if no RRC CONNECTION REQUEST is "
1724 "received before this time, the UE context is destroyed. "
1725 "Must account for reception of RAR and transmission of "
1726 "RRC CONNECTION REQUEST over UL GRANT. The value of this"
1727 "timer should not be greater than T300 timer at UE RRC",
1731 .AddAttribute (
"ConnectionSetupTimeoutDuration",
1732 "After accepting connection request, if no RRC CONNECTION "
1733 "SETUP COMPLETE is received before this time, the UE "
1734 "context is destroyed. Must account for the UE's reception "
1735 "of RRC CONNECTION SETUP and transmission of RRC CONNECTION "
1740 .AddAttribute (
"ConnectionRejectedTimeoutDuration",
1741 "Time to wait between sending a RRC CONNECTION REJECT and "
1742 "destroying the UE context",
1746 .AddAttribute (
"HandoverJoiningTimeoutDuration",
1747 "After accepting a handover request, if no RRC CONNECTION "
1748 "RECONFIGURATION COMPLETE is received before this time, the "
1749 "UE context is destroyed. Must account for reception of "
1750 "X2 HO REQ ACK by source eNB, transmission of the Handover "
1751 "Command, non-contention-based random access and reception "
1752 "of the RRC CONNECTION RECONFIGURATION COMPLETE message.",
1756 .AddAttribute (
"HandoverLeavingTimeoutDuration",
1757 "After issuing a Handover Command, if neither RRC "
1758 "CONNECTION RE-ESTABLISHMENT nor X2 UE Context Release has "
1759 "been previously received, the UE context is destroyed.",
1765 .AddAttribute (
"QRxLevMin",
1766 "One of information transmitted within the SIB1 message, "
1767 "indicating the required minimum RSRP level that any UE must "
1768 "receive from this cell before it is allowed to camp to this "
1769 "cell. The default value -70 corresponds to -140 dBm and is "
1770 "the lowest possible value as defined by Section 6.3.4 of "
1771 "3GPP TS 36.133. This restriction, however, only applies to "
1772 "initial cell selection and EPC-enabled simulation.",
1776 MakeIntegerChecker<int8_t> (-70, -22))
1777 .AddAttribute (
"NumberOfComponentCarriers",
1778 "Number of Component Carriers ",
1784 .AddAttribute (
"AdmitHandoverRequest",
1785 "Whether to admit an X2 handover request from another eNB",
1789 .AddAttribute (
"AdmitRrcConnectionRequest",
1790 "Whether to admit a connection request from a UE",
1796 .AddAttribute (
"RsrpFilterCoefficient",
1797 "Determines the strength of smoothing effect induced by "
1798 "layer 3 filtering of RSRP in all attached UE; "
1799 "if set to 0, no layer 3 filtering is applicable",
1803 MakeUintegerChecker<uint8_t> (0))
1804 .AddAttribute (
"RsrqFilterCoefficient",
1805 "Determines the strength of smoothing effect induced by "
1806 "layer 3 filtering of RSRQ in all attached UE; "
1807 "if set to 0, no layer 3 filtering is applicable",
1811 MakeUintegerChecker<uint8_t> (0))
1814 .AddTraceSource (
"NewUeContext",
1815 "Fired upon creation of a new UE context.",
1817 "ns3::LteEnbRrc::NewUeContextTracedCallback")
1818 .AddTraceSource (
"ConnectionEstablished",
1819 "Fired upon successful RRC connection establishment.",
1821 "ns3::LteEnbRrc::ConnectionHandoverTracedCallback")
1822 .AddTraceSource (
"ConnectionReconfiguration",
1823 "trace fired upon RRC connection reconfiguration",
1825 "ns3::LteEnbRrc::ConnectionHandoverTracedCallback")
1826 .AddTraceSource (
"HandoverStart",
1827 "trace fired upon start of a handover procedure",
1829 "ns3::LteEnbRrc::HandoverStartTracedCallback")
1830 .AddTraceSource (
"HandoverEndOk",
1831 "trace fired upon successful termination of a handover procedure",
1833 "ns3::LteEnbRrc::ConnectionHandoverTracedCallback")
1834 .AddTraceSource (
"RecvMeasurementReport",
1835 "trace fired when measurement report is received",
1837 "ns3::LteEnbRrc::ReceiveReportTracedCallback")
1838 .AddTraceSource (
"NotifyConnectionRelease",
1839 "trace fired when an UE is released",
1841 "ns3::LteEnbRrc::ConnectionHandoverTracedCallback")
1842 .AddTraceSource (
"RrcTimeout",
1843 "trace fired when a timer expires",
1845 "ns3::LteEnbRrc::TimerExpiryTracedCallback")
1969 "You meant to store the pointer at position " <<
1970 static_cast<uint32_t
> (index) <<
2071 std::map<uint16_t, Ptr<UeManager> >::const_iterator it =
m_ueMap.find (rnti);
2072 return (it !=
m_ueMap.end ());
2080 std::map<uint16_t, Ptr<UeManager> >::iterator it =
m_ueMap.find (rnti);
2093 "Measurement identities and reporting configuration should not have different quantity");
2097 NS_FATAL_ERROR (
"AddUeMeasReportConfig may not be called after the simulation has run");
2108 NS_FATAL_ERROR (
"The given triggerQuantity (RSRP) does not match with the given threshold2.choice");
2117 NS_FATAL_ERROR (
"The given triggerQuantity (RSRP) does not match with the given threshold1.choice");
2125 NS_FATAL_ERROR (
"The given triggerQuantity (RSRQ) does not match with the given threshold2.choice");
2134 NS_FATAL_ERROR (
"The given triggerQuantity (RSRQ) does not match with the given threshold1.choice");
2145 NS_FATAL_ERROR (
"Only REPORT_STRONGEST_CELLS purpose is supported");
2150 NS_LOG_WARN (
"reportQuantity = BOTH will be used instead of the given reportQuantity");
2176 auto it = ccPhyConf.begin ();
2178 uint16_t ulBandwidth = it->second->GetUlBandwidth ();
2179 uint16_t dlBandwidth = it->second->GetDlBandwidth ();
2180 uint32_t ulEarfcn = it->second->GetUlEarfcn ();
2181 uint32_t dlEarfcn = it->second->GetDlEarfcn ();
2183 << ulEarfcn << dlEarfcn);
2186 for (
const auto &it: ccPhyConf)
2188 m_cphySapProvider.at (it.first)->SetBandwidth (it.second->GetUlBandwidth (), it.second->GetDlBandwidth ());
2189 m_cphySapProvider.at (it.first)->SetEarfcn (it.second->GetUlEarfcn (), it.second->GetDlEarfcn ());
2191 m_cmacSapProvider.at (it.first)->ConfigureMac (it.second->GetUlBandwidth (), it.second->GetDlBandwidth ());
2195 m_ffrRrcSapProvider.at (it.first)->SetBandwidth (it.second->GetUlBandwidth (), it.second->GetDlBandwidth ());
2228 m_sib1.reserve (ccPhyConf.size ());
2229 for (
const auto &it: ccPhyConf)
2265 m_sib1.at (0).cellAccessRelatedInfo.cellIdentity = cellId;
2273 m_sib1.at (ccIndex).cellAccessRelatedInfo.cellIdentity = cellId;
2283 if (it.second->GetCellId () == cellId)
2305 NS_ASSERT_MSG (found,
"no EpsBearerTag found in packet to be sent");
2307 ueManager->SendData (tag.
GetBid (), packet);
2323 "ConnectionRequestTimeout in unexpected state " <<
ToString (
GetUeManager (rnti)->GetState ()));
2345 "ConnectionRejectedTimeout in unexpected state " <<
ToString (
GetUeManager (rnti)->GetState ()));
2381 ueManager->PrepareHandover (cellId);
2403 GetUeManager (rnti)->RecvRrcConnectionSetupCompleted (msg);
2410 GetUeManager (rnti)->RecvRrcConnectionReconfigurationCompleted (msg);
2417 GetUeManager (rnti)->RecvRrcConnectionReestablishmentRequest (msg);
2424 GetUeManager (rnti)->RecvRrcConnectionReestablishmentComplete (msg);
2439 ueManager->InitialContextSetupRequest ();
2450 GetUeManager (rnti)->RecvIdealUeContextRemoveRequest (rnti);
2469 ueManager->SendUeContextRelease ();
2499 if (anrcrv.
valid ==
false)
2501 NS_LOG_INFO (
this <<
" failed to allocate a preamble for non-contention based RA => cannot accept HO");
2503 NS_FATAL_ERROR (
"should trigger HO Preparation Failure, but it is not implemented");
2517 for (std::vector <EpcX2Sap::ErabToBeSetupItem>::iterator it = req.
bearers.begin ();
2521 ueManager->SetupDataRadioBearer (it->erabLevelQosParameters, it->erabId, it->gtpTeid, it->transportLayerAddress);
2549 ackParams.
rrcContext = encodedHandoverCommand;
2551 NS_LOG_LOGIC (
"Send X2 message: HANDOVER REQUEST ACK");
2566 NS_LOG_LOGIC (
"Recv X2 message: HANDOVER REQUEST ACK");
2575 ueManager->RecvHandoverRequestAck (params);
2583 NS_LOG_LOGIC (
"Recv X2 message: HANDOVER PREPARATION FAILURE");
2593 ueManager->RecvHandoverPreparationFailure (params.
targetCellId);
2609 ueManager->RecvSnStatusTransfer (params);
2645 NS_LOG_LOGIC (
"Recv X2 message: RESOURCE STATUS UPDATE");
2649 NS_ASSERT (
"Processing of RESOURCE STATUS UPDATE X2 message IS NOT IMPLEMENTED");
2657 NS_LOG_LOGIC (
"Recv UE DATA FORWARDING through X2 interface");
2664 std::map<uint32_t, X2uTeidInfo>::iterator
2668 GetUeManager (teidInfoIt->second.rnti)->SendData (teidInfoIt->second.drbid, params.
ueData);
2688 ueManager->CmacUeConfigUpdateInd (cmacParams);
2728 bool isHandoverAllowed =
true;
2731 NS_ASSERT_MSG (ueManager != 0,
"Cannot find UE context with RNTI " << rnti);
2739 <<
" targetCellId=" << targetCellId
2740 <<
" NRT.NoHo=" << noHo <<
" NRT.NoX2=" << noX2);
2744 isHandoverAllowed =
false;
2745 NS_LOG_LOGIC (
this <<
" handover to cell " << targetCellId
2746 <<
" is not allowed by ANR");
2752 isHandoverAllowed =
false;
2753 NS_LOG_LOGIC (
this <<
" handover is not allowed because the UE"
2754 <<
" rnti=" << rnti <<
" is in "
2755 <<
ToString (ueManager->GetState ()) <<
" state");
2758 if (isHandoverAllowed)
2761 ueManager->PrepareHandover (targetCellId);
2788 ueManager->SetPdschConfigDedicated (pdschConfigDedicated);
2816 NS_ASSERT_MSG (found,
"no more RNTIs available (do you have more than 65535 UEs in a cell?)");
2818 Ptr<UeManager> ueManager = CreateObject<UeManager> (
this, rnti, state, componentCarrierId);
2821 ueManager->Initialize ();
2823 NS_LOG_DEBUG (
this <<
" New UE RNTI " << rnti <<
" cellId " << cellId <<
" srs CI " << ueManager->GetSrsConfigurationIndex ());
2832 std::map <uint16_t, Ptr<UeManager> >::iterator it =
m_ueMap.find (rnti);
2834 uint64_t imsi = it->second->GetImsi ();
2835 uint16_t srsCi = (*it).second->GetSrsConfigurationIndex ();
2837 it->second->CancelPendingEvents ();
2910 for (uint8_t componentCarrierId = 0; componentCarrierId <
m_sib1.size (); componentCarrierId++)
2912 m_sib1.at (componentCarrierId).cellAccessRelatedInfo.csgIdentity = csgId;
2913 m_sib1.at (componentCarrierId).cellAccessRelatedInfo.csgIndication = csgIndication;
2951 std::ostringstream allowedValues;
2956 NS_FATAL_ERROR (
"illecit SRS periodicity value " << p <<
". Allowed values: " << allowedValues.str ());
2980 <<
") for current SRS periodicity "
2982 <<
", consider increasing the value of ns3::LteEnbRrc::SrsPeriodicity");
3035 if (bearer.
IsGbr ())
3058 uint8_t ccId = it.first;
3090 switch (ueManager->GetState ())
LteAnrSapProvider * m_anrSapProvider
Interface to the ANR instance.
uint8_t m_defaultTransmissionMode
The DefaultTransmissionMode attribute.
void PrepareHandover(uint16_t cellId)
Start the handover preparation and send the handover request.
void RecvHandoverPreparationFailure(uint16_t cellId)
Take the necessary actions in response to the reception of an X2 HO preparation failure message.
UlPowerControlDedicatedSCell ulPowerControlDedicatedSCell
UL power control dedicated SCell.
virtual void AddNeighbourRelation(uint16_t cellId)=0
Add a new Neighbour Relation entry.
void ReleaseDataRadioBearer(uint8_t drbid)
Release a given radio bearer.
a unique identifier for an interface.
bool haveSoundingRsUlConfigDedicated
have sounding RS UL config dedicated?
void DoSetNumberOfComponentCarriers(uint16_t numberOfComponentCarriers)
Set number of component carriers.
uint8_t raResponseWindowSize
RA response window size.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Service Access Point (SAP) offered by the MAC to the RRC See Femto Forum MAC Scheduler Interface Spec...
uint16_t rxSn
RX sequence number.
uint8_t measObjectId
measure object ID
uint8_t rsrqResult
RSRQ result.
EpsBearer bearer
the characteristics of the bearer to be setup
LogicalChannelConfig logicalChannelConfig
logical channel config
uint32_t dlCarrierFreq
ARFCN - valueEUTRA.
ThresholdEutra threshold2
Threshold for event A5.
uint8_t GetBid(void) const
Get Bearer Id function.
enum LteEpsBearerToRlcMapping_t m_epsBearerToRlcMapping
The EpsBearerToRlcMapping attribute.
RadioResourceConfigCommon radioResourceConfigCommon
radio resource config common
std::vector< LteRrcSap::SystemInformationBlockType1 > m_sib1
The System Information Block Type 1 that is currently broadcasted over BCH.
Service Access Point (SAP) offered by the eNodeB RRC instance to the handover algorithm instance.
std::vector< ErabNotAdmittedItem > notAdmittedBearers
not admitted bearers
uint16_t m_rnti
UE id within this cell.
void ConnectionSetupTimeout(uint16_t rnti)
Method triggered when a UE is expected to complete a connection setup procedure but does not do so in...
AntennaInfoCommon antennaInfoCommon
2: Physical configuration, general antennaInfoCommon-r10
uint32_t gtpTeid
GTP TEID.
@ EVENT_A1
Event A1: Serving becomes better than absolute threshold.
PhysicalConfigDedicated physicalConfigDedicated
physical config dedicated
void RecvIdealUeContextRemoveRequest(uint16_t rnti)
Implement the LteEnbRrcSapProvider::RecvIdealUeContextRemoveRequest interface.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
std::vector< CellMeasurementResultItem > cellMeasurementResultList
cell measurement result list
void RecvMeasurementReport(LteRrcSap::MeasurementReport msg)
Implement the LteEnbRrcSapProvider::RecvMeasurementReport interface.
MeasConfig sourceMeasConfig
source measure config
MeasResults measResults
measure results
MeasObjectEutra measObjectEutra
measure object eutra
MeasConfig measConfig
measure config
virtual void SendHandoverPreparationFailure(HandoverPreparationFailureParams params)=0
Send handover preparation failure function.
void SetS1SapProvider(EpcEnbS1SapProvider *s)
Set the S1 SAP Provider.
void SetLteFfrRrcSapProvider(LteFfrRrcSapProvider *s)
set the FFR SAP this RRC should interact with
SetupUeParameters structure.
Ptr< const AttributeChecker > MakeTimeChecker(const Time min, const Time max)
Helper to make a Time checker with bounded range.
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
RrcConnectionSetupCompleted structure.
ReportConfigEutra reportConfigEutra
report config eutra
AttributeValue implementation for Boolean.
SystemInformationBlockType1 sourceSystemInformationBlockType1
source system information block type 1
AntennaInfoDedicated antennaInfo
antenna info dedicated
bool haveCellForWhichToReportCGI
have cell for which to report CGI?
uint16_t newUeIdentity
new UE identity
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 ...
@ ATTR_CONSTRUCT
The attribute can be written at construction-time.
Ptr< const AttributeAccessor > MakeIntegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
uint16_t m_sourceCellId
source cell ID
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
uint16_t dlBandwidth
DL bandwidth.
ReportConfigToAddMod structure.
uint8_t lcId
logical channel identifier
uint8_t neighCellConfig
neighbor cell config
bool IsRandomAccessCompleted(uint16_t rnti)
Is random access completed function.
bool haveCarrierBandwidth
have carrier bandwidth?
int8_t offsetFreq
offset frequency
bool haveRachConfigDedicated
Have RACH config dedicated?
virtual void SendLoadInformation(LoadInformationParams params)=0
Send load information function.
uint16_t targetCellId
target cell ID
LtePdcpSapUser * m_drbPdcpSapUser
DRB PDCP SAP user.
TxFailParam txFailParam
txFailParams
uint8_t GetLogicalChannelPriority(EpsBearer bearer)
Parameters passed to InitialContextSetupRequest ()
friend class MemberLteAnrSapUser< LteEnbRrc >
allow MemberLteAnrSapUser<LteEnbRrc> class friend access
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
uint8_t DoAddUeMeasReportConfigForComponentCarrier(LteRrcSap::ReportConfigEutra reportConfig)
Add UE measure report config for component carrier function.
RadioResourceConfigDedicated sourceRadioResourceConfig
source radio resource config
uint32_t mmeUeS1Id
mmeUeS1Id in practice, we use the IMSI
uint32_t ulCarrierFreq
UL carrier frequency.
virtual Ptr< Packet > EncodeHandoverCommand(RrcConnectionReconfiguration msg)=0
Encode handover command.
uint32_t mmeUeS1apId
MME UE S1 AP ID.
uint8_t Lcid2Bid(uint8_t lcid)
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.
static TypeId GetTypeId(void)
Get the type ID.
uint8_t Bid2Lcid(uint8_t bid)
static Time Now(void)
Return the current simulation virtual time.
bool haveNonUlConfiguration
have non UL configuration?
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
The ConnectionReconfiguration trace source.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void DoRecvLoadInformation(EpcX2SapUser::LoadInformationParams params)
Receive load information function.
Ptr< LteSignalingRadioBearerInfo > m_srb1
The Srb1 attribute.
uint64_t GetImsi(void) const
Ptr< Packet > ueData
UE data.
uint8_t epsBearerIdentity
EPS bearer identity.
uint16_t targetPhysCellId
target Phy cell ID
RachConfigCommon structure.
void SetPdschConfigDedicated(LteRrcSap::PdschConfigDedicated pdschConfigDedicated)
Configure PdschConfigDedicated (i.e.
void SendHandoverRequest(uint16_t rnti, uint16_t cellId)
Send a HandoverRequest through the X2 SAP interface.
void SetRnti(uint16_t rnti)
Set the RNTI to the given value.
State
The state of the UeManager at the eNB RRC.
LteRrcSap::MeasConfig m_ueMeasConfig
List of measurement configuration which are active in every UE attached to this eNodeB instance.
uint8_t m_lastRrcTransactionIdentifier
last RRC transaction identifier
uint8_t Lcid2Drbid(uint8_t lcid)
void DoRecvRrcConnectionRequest(uint16_t rnti, LteRrcSap::RrcConnectionRequest msg)
Part of the RRC protocol.
LogicalChannelConfig logicalChannelConfig
logical channel config
LteAnrSapUser * m_anrSapUser
Receive API calls from the ANR instance.
Hold a signed integer type.
Ptr< const AttributeChecker > MakeEnumChecker(int v, std::string n, Ts... args)
Make an EnumChecker pre-configured with a set of allowed values by name.
static const std::string & ToString(EpcUeNas::State s)
uint8_t Drbid2Bid(uint8_t drbid)
uint16_t oldEnbUeX2apId
old ENB UE X2 AP ID
void SwitchToState(State s)
Switch the UeManager to the given state.
Service Access Point (SAP) offered by the Component Carrier Manager (CCM) instance to the eNodeB RRC ...
EventId m_handoverJoiningTimeout
Time limit before a handover joining timeout occurs.
std::set< uint8_t > m_anrMeasIds
List of measurement identities which are intended for ANR purpose.
void DoRecvHandoverRequestAck(EpcX2SapUser::HandoverRequestAckParams params)
Receive handover request acknowledge function.
Parameters passed to DataRadioBearerSetupRequest ()
Ptr< const AttributeAccessor > MakeObjectMapAccessor(U T::*memberVariable)
MakeAccessorHelper implementation for ObjectVector.
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated
LteHandoverManagementSapProvider * m_handoverManagementSapProvider
Interface to the handover algorithm instance.
uint16_t oldEnbUeX2apId
old ENB UE X2 AP ID
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 ...
LtePdcpSapUser * srb1SapUser
SRB1 SAP user.
void DoSendLoadInformation(EpcX2Sap::LoadInformationParams params)
Send load information function.
uint8_t srbIdentity
SB identity.
void SetLteEnbCphySapProvider(LteEnbCphySapProvider *s)
set the CPHY SAP this RRC should use to interact with the PHY
UlConfiguration ulConfiguration
UL configuration.
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
MeasIdToAddMod structure.
std::map< uint16_t, Ptr< UeManager > > m_ueMap
The UeMap attribute.
TracedCallback< uint64_t, uint16_t, uint16_t, std::string > m_rrcTimeoutTrace
The 'TimerExpiry' Trace source.
bool haveRadioResourceConfigDedicatedSCell
have radio resource config dedicated SCell?
void SetLteCcmRrcSapProvider(LteCcmRrcSapProvider *s)
set the Component Carrier Management SAP this RRC should interact with
LteRrcSap::RrcConnectionReconfiguration BuildRrcConnectionReconfiguration()
static TypeId GetTypeId(void)
Get the type ID.
uint8_t raPreambleId
random access preamble id
void SendUeContextRelease()
send the UE CONTEXT RELEASE X2 message to the source eNB, thus successfully terminating an X2 handove...
bool haveNonUlConfiguration
have non UL configuration?
uint8_t rsrpResult
RSRP result.
void DoRecvRrcConnectionReestablishmentRequest(uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentRequest msg)
Part of the RRC protocol.
std::set< uint16_t > m_ueSrsConfigurationIndexSet
UE SRS configuration index set.
EpcEnbS1SapUser * GetS1SapUser()
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated
void RecvRrcConnectionReconfigurationCompleted(LteRrcSap::RrcConnectionReconfigurationCompleted msg)
Implement the LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationCompleted interface.
#define NS_LOG_WARN(msg)
Use NS_LOG to output a message of level LOG_WARN.
virtual void SendSystemInformation(uint16_t cellId, SystemInformation msg)=0
Send a SystemInformation message to all attached UEs during a system information acquisition procedur...
friend class MemberLteHandoverManagementSapUser< LteEnbRrc >
allow MemberLteHandoverManagementSapUser<LteEnbRrc> class friend access
static const uint16_t g_srsCiLow[SRS_ENTRIES]
The lower bound (inclusive) of the SRS configuration indices (ISRS) which use the corresponding SRS p...
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...
uint32_t ulCarrierFreq
UL carrier frequency.
uint8_t Bid2Drbid(uint8_t bid)
bool HasUeManager(uint16_t rnti) const
enum ns3::LteRrcSap::ReportConfigEutra::report purpose
purpose
bool m_admitHandoverRequest
The AdmitHandoverRequest attribute.
bool haveScellsMeas
has SCells measure
Ptr< Packet > pdcpSdu
the RRC PDU
Ipv4 addresses are stored in host order in this class.
virtual void DoDispose(void)
Destructor implementation.
std::vector< ErabsSubjectToStatusTransferItem > erabsSubjectToStatusTransferList
ERABs subject to status transfer list.
Time m_connectionSetupTimeoutDuration
The ConnectionSetupTimeoutDuration attribute.
uint16_t oldEnbUeX2apId
old ENB UE X2 AP ID
QuantityConfig quantityConfig
quantity config
CarrierBandwidthEutra carrierBandwidth
carrier bandwidth
Hold objects of type Ptr<T>.
std::list< std::pair< uint8_t, Ptr< Packet > > > m_packetBuffer
Packet buffer for when UE is doing the handover.
RrcConnectionReconfigurationCompleted structure.
void ConnectionRejectedTimeout(uint16_t rnti)
Method triggered a while after sending RRC Connection Rejected.
uint16_t m_rnti
UE id within this cell.
enum ns3::LteRrcSap::ThresholdEutra::@0 choice
Threshold enumeration.
Ptr< Packet > rrcContext
RRC context.
uint8_t m_transmissionMode
Transmission mode 1..7
RrcConnectionReject structure.
Container for a set of ns3::Object pointers.
HandoverPreparationInfo structure.
@ ATTR_GET
The attribute can be read.
void SetCellId(uint16_t m_cellId)
set the cell id of this eNB
Ptr< LteSignalingRadioBearerInfo > m_srb0
The Srb0 attribute.
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5.
bool m_needPhyMacConfiguration
need Phy MAC configuration
Parameters of the UE CONTEXT RELEASE message.
bool SendData(Ptr< Packet > p)
Enqueue an IP data packet on the proper bearer for downlink transmission.
void DoTriggerHandover(uint16_t rnti, uint16_t targetCellId)
Trigger handover function.
Logical Channel information to be passed to CmacSapProvider::ConfigureLc.
virtual void SendHandoverRequestAck(HandoverRequestAckParams params)=0
Send handover request ack function.
Parameters of the HANDOVER REQUEST message.
RrcConnectionSetup structure.
@ RSRP
Reference Signal Received Power.
std::vector< LteEnbCmacSapUser * > m_cmacSapUser
Receive API calls from the eNodeB MAC instance.
Parameters for LtePdcpSapUser::ReceivePdcpSdu.
std::map< uint32_t, X2uTeidInfo > m_x2uTeidInfoMap
TEID, RNTI, DRBID.
void ConfigureCell(std::map< uint8_t, Ptr< ComponentCarrierBaseStation > > ccPhyConf)
Configure cell-specific parameters.
void SetSrsConfigurationIndex(uint16_t srsConfIndex)
Set the SRS configuration index and do the necessary reconfiguration.
uint16_t targetCellId
target cell ID
Ipv4Address transportLayerAddress
transport layer address
bool havePdschConfigDedicated
have PDSCH config dedicated?
bool m_carriersConfigured
are carriers configured
static EventId Schedule(Time const &delay, FUNC f, Ts &&... args)
Schedule an event to expire after delay.
uint16_t srsBandwidthConfig
SRS bandwidth config.
Ptr< const AttributeAccessor > MakeBooleanAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
AntennaInfoDedicated antennaInfo
antenna info
bool m_pendingStartDataRadioBearers
Pending start data radio bearers.
uint32_t gtpTeid
S1-bearer GTP tunnel endpoint identifier, see 36.423 9.2.1.
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
uint8_t m_componentCarrierId
ID of the primary CC for this UE.
friend class MemberLteEnbRrcSapProvider< LteEnbRrc >
allow MemberLteEnbRrcSapProvider<LteEnbRrc> class friend access
RachConfigCommon rachConfigCommon
RACH config common.
void DoReceivePdcpSdu(LtePdcpSapUser::ReceivePdcpSduParameters params)
Receive PDCP SDU function.
bool presenceAntennaPort1
antenna port 1 present?
void RecvHandoverRequestAck(EpcX2SapUser::HandoverRequestAckParams params)
take the necessary actions in response to the reception of an X2 HANDOVER REQUEST ACK message
RaSupervisionInfo raSupervisionInfo
RA supervision info.
void DoRecvUeData(EpcX2SapUser::UeDataParams params)
Receive UE data function.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
E-RABs admitted item as it is used in the HANDOVER REQUEST ACKNOWLEDGE message.
Hold variables of type enum.
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
The HandoverStart trace source.
uint16_t m_numberOfComponentCarriers
number of component carriers
struct defining the RACH configuration of the MAC
LteCcmRrcSapUser * GetLteCcmRrcSapUser()
Get the Component Carrier Management SAP offered by this RRC.
friend class MemberEpcEnbS1SapUser< LteEnbRrc >
allow MemberLteEnbRrcSapProvider<LteEnbRrc> class friend access
uint8_t lcGroup
logical channel group
Service Access Point (SAP) offered by the handover algorithm instance to the eNodeB RRC instance.
void SetRnti(uint16_t rnti)
uint16_t m_dlBandwidth
Downlink transmission bandwidth configuration in number of Resource Blocks.
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source.
void SendData(uint8_t bid, Ptr< Packet > p)
Send a data packet over the appropriate Data Radio Bearer.
Service Access Point (SAP) offered by the eNodeB RRC instance to the component carrier manager (CCM) ...
uint16_t newEnbUeX2apId
new ENB UE X2 AP ID
uint16_t m_lastAllocatedRnti
Last allocated RNTI.
uint8_t DoAddUeMeasReportConfigForFfr(LteRrcSap::ReportConfigEutra reportConfig)
Add UE measure report config for FFR function.
std::list< MeasIdToAddMod > measIdToAddModList
measure ID to add mod list
std::list< uint8_t > m_drbsToBeStarted
DRBS to be started.
RadioResourceConfigCommonSCell radioResourceConfigCommonSCell
radio resource config common SCell
UlPowerControlCommonSCell ulPowerControlCommonSCell
3GPP TS 36.331 v.11.10 R11 pag.223
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
uint16_t GetRnti(void) const
void RemoveUe(uint16_t rnti)
remove a UE from the cell
uint64_t ueAggregateMaxBitRateUplink
UE aggregrate max bit rate uplink.
enum ns3::LteRrcSap::ReportConfigEutra::@4 reportQuantity
Report type enumeration.
void RecordDataRadioBearersToBeStarted()
Start all configured data radio bearers.
This class implements the Service Access Point (SAP) between the LteEnbRrc and the EpcEnbApplication.
FreqInfo ulFreqInfo
UL frequency info.
uint64_t mbrUl
maximum bitrate in uplink
uint64_t m_imsi
International Mobile Subscriber Identity assigned to this UE.
virtual void DoDispose()
Destructor implementation.
LteMacSapUser * GetLteMacSapUser()
void CompleteSetupUe(LteEnbRrcSapProvider::CompleteSetupUeParameters params)
Implement the LteEnbRrcSapProvider::CompleteSetupUe interface.
uint8_t AddUeMeasReportConfig(LteRrcSap::ReportConfigEutra config)
Add a new UE measurement reporting configuration.
CompleteSetupUeParameters structure.
LTE RLC Acknowledged Mode (AM), see 3GPP TS 36.322.
uint16_t dlPdcpSn
DL PDCP SN.
static const uint16_t g_srsPeriodicity[SRS_ENTRIES]
Sounding Reference Symbol (SRS) periodicity (TSRS) in milliseconds.
Parameters of the HANDOVER PREPARATION FAILURE message.
int8_t qQualMin
INTEGER (-34..-3), actual value = IE value [dB].
void DoRecvRrcConnectionSetupCompleted(uint16_t rnti, LteRrcSap::RrcConnectionSetupCompleted msg)
Part of the RRC protocol.
void ConfigureCarriers(std::map< uint8_t, Ptr< ComponentCarrierBaseStation >> ccPhyConf)
Configure carriers.
uint8_t preambleTransMax
preamble transmit maximum
Smart pointer class similar to boost::intrusive_ptr.
uint16_t dlBandwidth
1: Cell characteristics
std::set< uint8_t > m_componentCarrierMeasIds
List of measurement identities which are intended for component carrier management purposes.
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
enum ns3::LteRrcSap::ReportConfigEutra::@2 eventId
Event enumeration.
LteCcmRrcSapProvider * m_ccmRrcSapProvider
Interface to the LteEnbComponentCarrierManager instance.
PdschConfigDedicated structure.
uint16_t m_sourceX2apId
source X2 ap ID
LteRrcSap::PhysicalConfigDedicated m_physicalConfigDedicated
physical config dedicated
bool haveUlConfiguration
have UL configuration
EpcX2SapUser * m_x2SapUser
Interface to receive messages from neighbour eNodeB over the X2 interface.
Callback< void, Ptr< Packet > > m_forwardUpCallback
forward up callback function
uint64_t ueAggregateMaxBitRateDownlink
UE aggregrate max bit rate downlink.
@ EVENT_A2
Event A2: Serving becomes worse than absolute threshold.
EpsBearer erabLevelQosParameters
E-RAB level QOS parameters.
static const uint8_t SRS_ENTRIES
Number of distinct SRS periodicity plus one.
uint8_t waitTime
wait time
Service Access Point (SAP) offered by the eNodeB RRC instance to the Frequency Reuse algorithm instan...
uint16_t antennaPortsCount
antenna ports count
This abstract base class defines the API to interact with the Radio Link Control (LTE_RLC) in LTE,...
std::list< ReportConfigToAddMod > reportConfigToAddModList
report config to add mod list
uint16_t nPuschIdentity
3GPP TS 36.331 v.11.10 R11 page 216
std::map< uint8_t, Ptr< ComponentCarrierBaseStation > > m_componentCarrierPhyConf
component carrier phy configuration
void RecvRrcConnectionReestablishmentComplete(LteRrcSap::RrcConnectionReestablishmentComplete msg)
Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplete interface.
PreambleInfo preambleInfo
preamble info
enum ns3::LteRrcSap::ReportConfigEutra::@3 triggerQuantity
Trigger type enumeration.
uint8_t connEstFailCount
Number of times that the UE detects T300 expiry on the same cell.
uint16_t oldEnbUeX2apId
old ENB UE X2 AP ID
AsConfig asConfig
AS config.
void DoCompleteSetupUe(uint16_t rnti, LteEnbRrcSapProvider::CompleteSetupUeParameters params)
Part of the RRC protocol.
void SetEpcX2SapProvider(EpcX2SapProvider *s)
Set the X2 SAP this RRC should interact with.
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...
uint64_t gbrUl
guaranteed bitrate in uplink
void SetLteEnbCmacSapProvider(LteEnbCmacSapProvider *s)
set the CMAC SAP this RRC should interact with
LteMacSapProvider * m_macSapProvider
Interface to the eNodeB MAC instance, to be used by RLC instances.
PdschConfigDedicated pdschConfigDedicated
PDSCH config dedicated.
BearerToBeSwitched structure.
void RecvRrcConnectionReestablishmentRequest(LteRrcSap::RrcConnectionReestablishmentRequest msg)
Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentRequest interface.
bool haveQuantityConfig
have quantity config?
bool crossCarrierSchedulingConfig
currently implemented as boolean variable --> implementing crossCarrierScheduling is out of the scope...
uint8_t AddDataRadioBearerInfo(Ptr< LteDataRadioBearerInfo > radioBearerInfo)
Add a new LteDataRadioBearerInfo structure to the UeManager.
uint8_t m_lastAllocatedDrbid
last allocated Data Radio Bearer ID
uint16_t ulPdcpSn
UL PDCP SN.
A base class which provides memory management and object aggregation.
uint8_t DoAddUeMeasReportConfigForAnr(LteRrcSap::ReportConfigEutra reportConfig)
Add UE measure report config for ANR function.
RrcConnectionRequest structure.
MeasObjectToAddMod structure.
uint8_t reportConfigId
report config ID
uint8_t GetLogicalChannelGroup(EpsBearer bearer)
Service Access Point (SAP) offered by the ANR instance to the eNodeB RRC instance.
uint16_t srsConfigIndex
SRS config index.
bool m_admitRrcConnectionRequest
The AdmitRrcConnectionRequest attribute.
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO.
Parameters of the UE DATA primitive.
LteRlcSapUser * srb0SapUser
SRB0 SAP user.
bool m_configured
True if ConfigureCell() has been completed.
bool haveAntennaInfoDedicated
have antenna info dedicated?
@ THRESHOLD_RSRP
RSRP is used for the threshold.
SoundingRsUlConfigDedicated soundingRsUlConfigDedicated
sounding RS UL config dedicated
void DoRecvRrcConnectionReestablishmentComplete(uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentComplete msg)
Part of the RRC protocol.
The LTE Radio Resource Control entity at the eNB.
Ipv4Address transportLayerAddress
IP Address of the SGW, see 36.423 9.2.1.
uint32_t plmnIdentity
PLMN identity.
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit.
uint8_t raPrachMaskIndex
PRACH mask index.
void SetLteMacSapProvider(LteMacSapProvider *s)
uint8_t raPrachMaskIndex
RA PRACH mask index.
uint8_t srsSubframeConfig
SRS subframe config.
Specifies criteria for triggering of an E-UTRA measurement reporting event.
uint8_t logicalChannelIdentity
logical channel identify
uint16_t srsBandwidth
SRS bandwidth.
void Cancel(void)
This method is syntactic sugar for the ns3::Simulator::Cancel method.
bool haveMeasGapConfig
have measure gap config?
Instantiate subclasses of ns3::Object.
bool m_caSupportConfigured
Define if the Carrier Aggregation was already configure for the current UE on not.
@ BOTH
Both the RSRP and RSRQ quantities are to be included in the measurement report.
bool haveAntennaInfoDedicated
have antenna info dedicated?
virtual void NotifyLcConfigResult(uint16_t rnti, uint8_t lcid, bool success)
notify the result of the last LC config operation
void SetSrsPeriodicity(uint32_t p)
uint16_t targetCellId
target cell ID
bool m_pendingRrcConnectionReconfiguration
pending RRC connection reconfiguration
EventId m_connectionSetupTimeout
Time limit before a connection setup timeout occurs.
uint16_t newEnbUeX2apId
new ENB UE X2 AP ID
This class implements the Service Access Point (SAP) between the LteEnbRrc and the EpcEnbApplication.
uint32_t carrierFreq
carrier frequency
std::list< BearerToBeSwitched > bearersToBeSwitched
list of bearers to be switched
@ RSRQ
Reference Signal Received Quality.
uint8_t raPreambleIndex
RA preamble index.
Parameters of the HANDOVER REQUEST ACKNOWLEDGE message.
GbrQosInformation gbrQosInfo
GBR QOS information.
Ptr< const AttributeChecker > MakeBooleanChecker(void)
PdschConfigCommon pdschConfigCommon
PDSCH config common.
void RecvSnStatusTransfer(EpcX2SapUser::SnStatusTransferParams params)
Take the necessary actions in response to the reception of an X2 SN STATUS TRANSFER message.
uint16_t GetRnti(void) const
Get RNTI function.
void RecvRrcConnectionSetupCompleted(LteRrcSap::RrcConnectionSetupCompleted msg)
Implement the LteEnbRrcSapProvider::RecvRrcConnectionSetupCompleted interface.
RachConfigCommon rachConfigCommon
RACH config common.
TracedCallback< uint64_t, uint16_t, uint16_t, State, State > m_stateTransitionTrace
The StateTransition trace source.
uint32_t GetSrsPeriodicity() const
LtePdcpSapProvider * srb1SapProvider
SRB1 SAP provider.
PrachConfigSCell prachConfigSCell
PRACH config SCell.
Simulation virtual time values and global simulation resolution.
std::vector< LteFfrRrcSapProvider * > m_ffrRrcSapProvider
Interface to the FFR algorithm instance.
Parameters of the SN STATUS TRANSFER message.
uint64_t gbrDl
guaranteed bitrate in downlink
Time m_connectionRequestTimeoutDuration
The ConnectionRequestTimeoutDuration attribute.
uint16_t txSn
TX sequence number.
bool haveUlConfiguration
have UL configuration?
bool haveAntennaInfoUlDedicated
have antenna info UL dedicated?
NonCriticalExtensionConfiguration nonCriticalExtension
3GPP TS 36.331 v.11.10 R11 Sec. 6.2.2 pag. 147 (also known as ETSI TS 136 331 v.11....
bool haveNonCriticalExtension
have critical extension?
uint64_t ueIdentity
UE identity.
#define NS_ABORT_MSG_IF(cond, msg)
Abnormal program termination if a condition is true, with a message.
uint32_t dlCarrierFreq
DL carrier frequency.
RrcConnectionReestablishment structure.
virtual uint16_t AllocateTemporaryCellRnti()
request the allocation of a Temporary C-RNTI
Parameters for [re]configuring the UE.
uint16_t sourceCellId
source cell ID
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.
EnbRrcMemberLteEnbCmacSapUser(LteEnbRrc *rrc, uint8_t componentCarrierId)
Constructor.
Part of the RRC protocol.
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
uint16_t DoAllocateTemporaryCellRnti(uint8_t componentCarrierId)
Allocate temporary cell RNTI function.
PathSwitchRequestAcknowledgeParameters structure.
uint16_t targetCellId
target cell ID
void CmacUeConfigUpdateInd(LteEnbCmacSapUser::UeConfig cmacParams)
CMAC UE config update indication function.
virtual void DoInitialize(void)
Initialize() implementation.
EpcX2SapProvider * m_x2SapProvider
Interface to send messages to neighbour eNodeB over the X2 interface.
These service primitives of this part of the X2 SAP are provided by the X2 entity and issued by RRC e...
void SetCsgId(uint32_t csgId, bool csgIndication)
Associate this RRC entity with a particular CSG information.
bool haveMeasConfig
have measure config
RrcConnectionReestablishmentRequest structure.
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
The DataRadioBearerMap attribute.
uint16_t rnti
the RNTI identifying the UE for which the DataRadioBearer is to be created
RachConfigDedicated rachConfigDedicated
RACH config dedicated.
uint16_t pSrsOffset
3GPP TS 36.331 v.11.10 R11 page 234
uint8_t drbIdentity
DRB identity.
AllocateNcRaPreambleReturnValue structure.
std::list< MeasResultEutra > measResultListEutra
measure result list eutra
Template for the implementation of the LteFfrRrcSapUser as a member of an owner class of type C to wh...
int8_t referenceSignalPower
INTEGER (-60..50),.
Ptr< Packet > rrcContext
RRC context.
virtual void DoInitialize()
Initialize() implementation.
MeasurementReport structure.
Service Access Point (SAP) offered by the eNB MAC to the eNB RRC See Femto Forum MAC Scheduler Interf...
EventId m_connectionRequestTimeout
Time limit before a connection request timeout occurs.
bool haveMobilityControlInfo
have mobility control info
static TypeId GetTypeId(void)
Get the type ID.
uint16_t ulBandwidth
UL bandwidth.
uint16_t m_ulBandwidth
Uplink transmission bandwidth configuration in number of Resource Blocks.
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
uint16_t sourceCellId
source cell ID
Time m_connectionRejectedTimeoutDuration
The ConnectionRejectedTimeoutDuration attribute.
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36....
State m_state
The current UeManager state.
PuschConfigDedicatedSCell pushConfigDedicatedSCell
PUSCH config dedicated SCell.
uint32_t m_ulEarfcn
Uplink E-UTRA Absolute Radio Frequency Channel Number.
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC.
Ptr< const AttributeAccessor > MakePointerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
uint8_t m_rsrqFilterCoefficient
The RsrqFilterCoefficient attribute.
LteEnbCmacSapUser * GetLteEnbCmacSapUser()
Get the CMAC SAP offered by this RRC.
TracedCallback< uint64_t, uint16_t, uint16_t, LteRrcSap::MeasurementReport > m_recvMeasurementReportTrace
The RecvMeasurementReport trace source.
LteRrcSap::RadioResourceConfigDedicated GetRadioResourceConfigForHandoverPreparationInfo()
LteHandoverManagementSapUser * m_handoverManagementSapUser
Receive API calls from the handover algorithm instance.
uint16_t rnti
the RNTI identifying the UE
#define NS_ABORT_IF(cond)
Abnormal program termination if a condition is true.
NonUlConfiguration nonUlConfiguration
non UL configuration
virtual bool IsRandomAccessCompleted(uint16_t rnti)
Is random access completed function.
static const uint16_t g_srsCiHigh[SRS_ENTRIES]
The upper bound (inclusive) of the SRS configuration indices (ISRS) which use the corresponding SRS p...
std::list< MeasResultScell > measResultScell
measure results Scells
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReleaseTrace
The NotifyConnectionRelease trace source.
bool haveSpeedStatePars
have speed state parameters?
PhysicalConfigDedicatedSCell physicalConfigDedicatedSCell
physical config dedicated SCell
@ EVENT_A4
Event A4: Neighbour becomes better than absolute threshold.
void AddPacketTag(const Tag &tag) const
Add a packet tag.
uint8_t GetComponentCarrierId() const
std::list< MeasObjectToAddMod > measObjectToAddModList
measure object to add mod list
uint8_t GetNewRrcTransactionIdentifier()
std::vector< LteEnbCmacSapProvider * > m_cmacSapProvider
Interface to the eNodeB MAC instance.
uint8_t CellToComponentCarrierId(uint16_t cellId)
convert the cell id to component carrier id
std::list< SrbToAddMod > srbToAddModList
SRB to add mod list.
uint8_t preambleTransMax
preamble transmit maximum
Status variables of the PDCP.
void SetLteRlcSapUser(LteRlcSapUser *s)
Part of the RRC protocol.
std::vector< LteFfrRrcSapUser * > m_ffrRrcSapUser
Receive API calls from the FFR algorithm instance.
uint8_t m_transmissionMode
Transmission mode 1..7
enum ns3::LteRrcSap::SoundingRsUlConfigDedicated::action type
action type
LteEnbRrcSapUser * m_rrcSapUser
Interface to send messages to UE over the RRC protocol.
Ptr< LteDataRadioBearerInfo > GetDataRadioBearerInfo(uint8_t drbid)
void RemoveDataRadioBearerInfo(uint8_t drbid)
remove the LteDataRadioBearerInfo corresponding to a bearer being released
E-RABs to be setup item as it is used in the HANDOVER REQUEST message.
uint16_t alpha
alpha value
std::set< uint8_t > m_ffrMeasIds
List of measurement identities which are intended for FFR purpose.
bool haveMeasResultNeighCells
have measure result neighbor cells
PathSwitchRequestParameters structure.
bool haveSmeasure
have S measure?
static const std::string g_ueManagerStateName[UeManager::NUM_STATES]
Map each of UE Manager states to its string representation.
int8_t pb
INTEGER (0..3),.
CarrierFreqEutra carrierFreq
carrier frequency
EventId m_connectionRejectedTimeout
The delay before a connection rejected timeout occurs.
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 DoPathSwitchRequestAcknowledge(EpcEnbS1SapUser::PathSwitchRequestAcknowledgeParameters params)
Path switch request acknowledge function.
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
@ CONNECTION_RECONFIGURATION
This class contains the specification of EPS Bearers.
static TypeId GetTypeId(void)
Get the type ID.
LteRrcSap::RadioResourceConfigDedicated BuildRadioResourceConfigDedicated()
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).
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionEstablishedTrace
The ConnectionEstablished trace source.
uint16_t m_srsCurrentPeriodicityId
The SrsPeriodicity attribute.
void SetLteHandoverManagementSapProvider(LteHandoverManagementSapProvider *s)
set the Handover Management SAP this RRC should interact with
void RemoveSrsConfigurationIndex(uint16_t srcCi)
remove a previously allocated SRS configuration index
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).
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
uint16_t targetCellId
target cell ID
uint16_t m_targetX2apId
target X2 ap ID
void DoRecvIdealUeContextRemoveRequest(uint16_t rnti)
Part of the RRC protocol.
void SetLcId(uint8_t lcId)
Tag used to define the RNTI and EPS bearer ID for packets interchanged between the EpcEnbApplication ...
void AddX2Neighbour(uint16_t cellId)
Add a neighbour with an X2 interface.
void DoRecvMeasurementReport(uint16_t rnti, LteRrcSap::MeasurementReport msg)
Part of the RRC protocol.
bool isGbr
true if the bearer is GBR, false if the bearer is NON-GBR
EpcX2SapUser * GetEpcX2SapUser()
Get the X2 SAP offered by this RRC.
uint8_t DoAddUeMeasReportConfigForHandover(LteRrcSap::ReportConfigEutra reportConfig)
Add UE measure report config for handover function.
LteCcmRrcSapUser * m_ccmRrcSapUser
Receive API calls from the LteEnbComponentCarrierManager instance.
MasterInformationBlock sourceMasterInformationBlock
source master information block
std::vector< ErabToBeSetupItem > bearers
bearers
Time Seconds(double value)
Construct a Time in the indicated unit.
Parameters for LtePdcpSapProvider::TransmitPdcpSdu.
uint32_t m_dlEarfcn
Downlink E-UTRA Absolute Radio Frequency Channel Number.
void DoSetPdschConfigDedicated(uint16_t rnti, LteRrcSap::PdschConfigDedicated pa)
Set PDSCH config dedicated function.
LteRrcSap::NonCriticalExtensionConfiguration BuildNonCriticalExtentionConfigurationCa()
LteAnrSapUser * GetLteAnrSapUser()
Get the ANR SAP offered by this RRC.
@ GBR_CONV_VOICE
GBR Conversational Voice.
uint16_t allowedMeasBandwidth
allowed measure bandwidth
friend class EpcX2SpecificEpcX2SapUser< LteEnbRrc >
allow MemberEpcEnbS1SapUser<LteEnbRrc> class friend access
virtual void TransmitPdcpSdu(TransmitPdcpSduParameters params)=0
Send RRC PDU parameters to the PDCP for transmission.
std::vector< EpcX2Sap::ErabToBeSetupItem > GetErabList()
uint16_t m_targetCellId
target cell ID
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
Ptr< const AttributeAccessor > MakeEnumAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
uint16_t newEnbUeX2apId
new ENB UE X2 AP ID
uint16_t oldEnbUeX2apId
old ENB UE X2 AP ID
@ CONNECTION_REESTABLISHMENT
void RecvRrcConnectionRequest(LteRrcSap::RrcConnectionRequest msg)
Implement the LteEnbRrcSapProvider::RecvRrcConnectionRequest interface.
void DoRecvResourceStatusUpdate(EpcX2SapUser::ResourceStatusUpdateParams params)
Receive resource status update function.
TracedCallback< uint16_t, uint16_t > m_newUeContextTrace
The NewUeContext trace source.
virtual ~LteEnbRrc()
Destructor.
bool RemovePacketTag(Tag &tag)
Remove a packet tag.
AttributeValue implementation for Time.
static TypeId GetTypeId(void)
Get the type ID.
uint32_t sCellIndex
SCell index.
LteRlcSapProvider * GetLteRlcSapProvider()
void SendSystemInformation()
method used to periodically send System Information
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
uint16_t sourceCellId
source cell ID
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_drbCreatedTrace
The DrbCreated trace source.
LteEnbRrcSapProvider * GetLteEnbRrcSapProvider()
std::list< uint8_t > drbToReleaseList
DRB to release list.
SoundingRsUlConfigDedicated soundingRsUlConfigDedicated
sounding RS UL config dedicated
PdschConfigDedicated pdschConfigDedicated
PDSCH config dedicated.
Time m_handoverLeavingTimeoutDuration
The HandoverLeavingTimeoutDuration attribute.
@ EVENT_A5
Event A5: PCell becomes worse than absolute threshold1 AND Neighbour becomes better than another abso...
friend class MemberLteCcmRrcSapUser< LteEnbRrc >
allow MemberLteCcmRrcSapUser<LteEnbRrc> class friend access
uint32_t physCellId
physical cell ID
Service Access Point (SAP) offered by the eNodeB RRC instance to the ANR instance.
virtual void RrcConfigurationUpdateInd(UeConfig params)
Notify the RRC of a UE config updated requested by the MAC (normally, by the scheduler)
void SendPacket(uint8_t bid, Ptr< Packet > p)
Send a data packet over the appropriate Data Radio Bearer.
void CancelPendingEvents()
Cancel all timers which are running for the UE.
uint16_t rnti
the C-RNTI identifying the UE
uint16_t sourceCellId
source cell ID
RrcConnectionReconfiguration structure.
void SetBid(uint8_t bid)
Set the bearer id to the given value.
MeasResultServFreqList measScellResultList
measure SCell result list
MobilityControlInfo mobilityControlInfo
mobility control info
void DoRecvRrcConnectionReconfigurationCompleted(uint16_t rnti, LteRrcSap::RrcConnectionReconfigurationCompleted msg)
Part of the RRC protocol.
EpcEnbS1SapUser * m_s1SapUser
Interface to receive messages from core network over the S1 protocol.
CellIdentification cellIdentification
cell identification
uint8_t numberOfRaPreambles
number of RA preambles
uint16_t criticalityDiagnostics
criticality diagnostics
bool havePdschConfigDedicated
have PDSCH config dedicated?
uint8_t filterCoefficientRSRP
filter coefficient RSRP
std::vector< ErabAdmittedItem > admittedBearers
admitted bearers
uint8_t raResponseWindowSize
RA response window size.
enum ns3::EpsBearer::Qci qci
Qos class indicator.
Time m_systemInformationPeriodicity
The SystemInformationPeriodicity attribute.
uint8_t m_componentCarrierId
Component carrier ID.
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
Hold an unsigned integer type.
std::list< DrbToAddMod > drbToAddModList
DRB to add mod list.
LteFfrRrcSapUser * GetLteFfrRrcSapUser()
Get the FFR SAP offered by this RRC.
int8_t m_qRxLevMin
The QRxLevMin attribute.
TypeId GetRlcType(EpsBearer bearer)
std::set< uint8_t > m_handoverMeasIds
List of measurement identities which are intended for handover purpose.
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
The HandoverEndOk trace source.
Ptr< Object > Create(void) const
Create an Object instance of the configured TypeId.
Template for the implementation of the LteEnbCphySapUser as a member of an owner class of type C to w...
int8_t qRxLevMin
INTEGER (-70..-22), actual value = IE value * 2 [dBm].
uint16_t sourceUeIdentity
source UE identity
void InitialContextSetupRequest()
Process Initial context setup request message from the MME.
void RecvUeContextRelease(EpcX2SapUser::UeContextReleaseParams params)
Take the necessary actions in response to the reception of an X2 UE CONTEXT RELEASE message.
uint8_t reportConfigId
report config ID
uint8_t numberOfRaPreambles
number of RA preambles
LteEnbRrcSapProvider * m_rrcSapProvider
Interface to receive messages from UE over the RRC protocol.
void DoRecvUeContextRelease(EpcX2SapUser::UeContextReleaseParams params)
Receive UE context release function.
void DoInitialContextSetupRequest(EpcEnbS1SapUser::InitialContextSetupRequestParameters params)
Initial context setup request function.
std::vector< LteEnbCphySapUser * > m_cphySapUser
Receive API calls from the eNodeB PHY instances.
uint16_t sourceCellId
source cell ID
uint16_t rnti
the C-RNTI identifying the UE
uint8_t connEstFailCount
the counter value for T300 timer expiration
LteRrcSap::RrcConnectionReconfiguration GetRrcConnectionReconfigurationForHandover()
uint16_t GetNewSrsConfigurationIndex(void)
Allocate a new SRS configuration index for a new UE.
void ScheduleRrcConnectionReconfiguration()
schedule an RRC Connection Reconfiguration procedure with the UE
void SetLteMacSapProvider(LteMacSapProvider *s)
set the MAC SAP provider.
bool haveCarrierFreq
have carrier frequency?
Ptr< Packet > pdcpSdu
the RRC PDU
double GetPacketErrorLossRate() const
RadioResourceConfigDedicatedSCell radioResourceConfigDedicateSCell
radio resource config dedicated SCell
void DoRecvSnStatusTransfer(EpcX2SapUser::SnStatusTransferParams params)
Receive SN status transfer function.
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
void SetLteAnrSapProvider(LteAnrSapProvider *s)
set the ANR SAP this RRC should interact with
bool dlForwarding
DL forwarding.
void StartDataRadioBearers()
Start the data radio bearers that have been previously recorded to be started using RecordDataRadioBe...
uint8_t m_rsrpFilterCoefficient
The RsrpFilterCoefficient attribute.
void DoRecvHandoverRequest(EpcX2SapUser::HandoverRequestParams params)
Receive handover request function.
uint8_t bearerId
the EPS Bearer Identifier
virtual void RemoveUe(uint16_t rnti)=0
Remove UE function.
bool haveSoundingRsUlConfigDedicated
have sounding RS UL config dedicated?
PdschConfigCommon pdschConfigCommon
4: Physical configuration, physical channels pdsch-ConfigCommon-r10
LteHandoverManagementSapUser * GetLteHandoverManagementSapUser()
Get the Handover Management SAP offered by this RRC.
EventId m_handoverLeavingTimeout
Time limit before a handover leaving timeout occurs.
uint16_t GetSrsConfigurationIndex(void) const
@ THRESHOLD_RSRQ
RSRQ is used for the threshold.
NonCriticalExtensionConfiguration structure.
uint32_t sourceDlCarrierFreq
source DL carrier frequency
bool haveRadioResourceConfigDedicated
have radio resource config dedicated
Time m_handoverJoiningTimeoutDuration
The HandoverJoiningTimeoutDuration attribute.
Ptr< LteEnbRrc > m_rrc
Pointer to the parent eNodeB RRC.
uint8_t qci
QoS Class Identifier.
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
uint16_t AddUe(UeManager::State state, uint8_t componentCarrierId)
Allocate a new RNTI for a new UE.
bool havePhysicalConfigDedicated
have physical config dedicated?
static double ConvertPdschConfigDedicated2Double(PdschConfigDedicated pdschConfigDedicated)
Convert PDSCH config dedicated function.
std::list< SCellToAddMod > sCellsToAddModList
SCell to add mod list.
void DoNotifyLcConfigResult(uint16_t rnti, uint8_t lcid, bool success)
Notify LC config result function.
void DoDataRadioBearerSetupRequest(EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters params)
Data radio beaerer setup request function.
void SetForwardUpCallback(Callback< void, Ptr< Packet > > cb)
set the callback used to forward data packets up the stack
uint16_t targetCellId
target cell ID
uint16_t rnti
C-RNTI identifying the UE.
RrcConnectionReestablishmentComplete structure.
Service Access Point (SAP) offered by the Frequency Reuse algorithm instance to the eNodeB RRC instan...
uint64_t mbrDl
maximum bitrate in downlink
uint16_t m_rnti
The C-RNTI attribute.
RadioResourceConfigDedicated structure.
uint8_t measObjectId
measure object ID
uint8_t Drbid2Lcid(uint8_t drbid)
SoundingRsUlConfigCommon soundingRsUlConfigCommon
sounding RS UL config common
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...
Ptr< UeManager > GetUeManager(uint16_t rnti)
uint16_t m_lastAllocatedConfigurationIndex
last allocated configuration index
uint8_t transmissionMode
transmission mode
uint8_t filterCoefficientRSRQ
filter coefficient RSRQ
void SetLteEnbRrcSapUser(LteEnbRrcSapUser *s)
set the RRC SAP this RRC should interact with
LteEnbCphySapUser * GetLteEnbCphySapUser()
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
Class for forwarding CMAC SAP User functions.
LteEnbRrc()
create an RRC instance for use within an eNB
std::vector< LteEnbCphySapProvider * > m_cphySapProvider
Interface to the eNodeB PHY instances.
ErabsSubjectToStatusTransferItem structure.
uint8_t epsBearerId
Bearer ID.
Ptr< const AttributeAccessor > MakeTimeAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
These service primitives of this part of the X2 SAP are provided by the RRC entity and issued by the ...
bool valid
true if a valid RA config was allocated, false otherwise
LteRlcSapProvider * srb0SapProvider
SRB0 SAP provider.
friend class LtePdcpSpecificLtePdcpSapUser< UeManager >
allow LtePdcpSpecificLtePdcpSapUser<UeManager> class friend access
EpcEnbS1SapProvider * m_s1SapProvider
Interface to send messages to core network over the S1 protocol.
void DoRrcConfigurationUpdateInd(LteEnbCmacSapUser::UeConfig params)
RRC configuration update indication function.
Parameters for [re]configuring the UE.
@ HandoverDesirableForRadioReason
Parameters of the RESOURCE STATUS UPDATE message.
uint16_t ulBandwidth
UL bandwidth.
uint16_t ComponentCarrierToCellId(uint8_t componentCarrierId)
convert the component carrier id to cell id
AntennaInfoDedicated antennaInfoUl
antenna info UL
void SetImsi(uint64_t imsi)
Set the IMSI.
SystemInformationBlockType2 sourceSystemInformationBlockType2
source system information block type 2
void DoRecvHandoverPreparationFailure(EpcX2SapUser::HandoverPreparationFailureParams params)
Receive handover preparation failure function.
RlcConfig rlcConfig
RLC config.
uint16_t sourceCellId
source cell ID