98 CONNECTED_PHY_PROBLEM,
99 CONNECTED_REESTABLISHING,
116 void DoDispose()
override;
395 std::list<NrRrcSap::SCellToAddMod>);
442 void DoSetTemporaryCellRnti(uint16_t rnti);
444 void DoNotifyRandomAccessSuccessful();
446 void DoNotifyRandomAccessFailed();
454 void DoSetCsgWhiteList(uint32_t csgId);
461 void DoForceCampedOnGnb(uint16_t cellId, uint32_t dlEarfcn);
467 void DoStartCellSelection(uint32_t dlEarfcn);
476 void DoSendData(Ptr<Packet> packet, uint8_t bid);
494 void DoRecvSystemInformationBlockType1(uint16_t cellId,
556 void DoSetNumberOfComponentCarriers(uint16_t noOfComponentCarriers);
567 void SynchronizeToStrongestCell();
586 void EvaluateCellForSelection();
666 void SaveUeMeasurements(uint16_t cellId,
669 bool useLayer3Filtering,
670 uint8_t componentCarrierId);
696 void MeasurementReportTriggering(uint8_t measId);
729 void SendMeasurementReport(uint8_t measId);
740 void ApplyRadioResourceConfigDedicatedSecondaryCarrier(
743 void StartConnection();
754 void LeaveConnectedMode();
756 void DisposeOldSrb1();
762 uint8_t Bid2Drbid(uint8_t bid);
767 void SwitchToState(
State s);
769 std::map<uint8_t, uint8_t> m_bid2DrbidMap;
771 std::vector<NrUeCphySapUser*> m_cphySapUser;
772 std::vector<NrUeCphySapProvider*> m_cphySapProvider;
774 std::vector<NrUeCmacSapUser*> m_cmacSapUser;
775 std::vector<NrUeCmacSapProvider*> m_cmacSapProvider;
809 uint16_t m_primaryUlIndex{0};
814 uint16_t m_primaryDlIndex{0};
819 Ptr<NrSignalingRadioBearerInfo> m_srb0;
823 Ptr<NrSignalingRadioBearerInfo> m_srb1;
828 Ptr<NrSignalingRadioBearerInfo> m_srb1Old;
833 std::map<uint8_t, Ptr<NrDataRadioBearerInfo>> m_drbMap;
841 uint8_t m_lastRrcTransactionIdentifier;
843 NrRrcSap::PdschConfigDedicated m_pdschConfigDedicated;
845 uint16_t m_dlBandwidth;
846 uint16_t m_ulBandwidth;
850 std::list<NrRrcSap::SCellToAddMod> m_sCellToAddModList;
856 TracedCallback<uint64_t, uint16_t, uint16_t, uint16_t> m_mibReceivedTrace;
862 TracedCallback<uint64_t, uint16_t, uint16_t, uint16_t> m_sib1ReceivedTrace;
867 TracedCallback<uint64_t, uint16_t, uint16_t> m_sib2ReceivedTrace;
873 TracedCallback<uint64_t, uint16_t, uint16_t, State, State> m_stateTransitionTrace;
878 TracedCallback<uint64_t, uint16_t> m_initialCellSelectionEndOkTrace;
883 TracedCallback<uint64_t, uint16_t> m_initialCellSelectionEndErrorTrace;
889 TracedCallback<uint64_t, uint16_t, uint16_t> m_randomAccessSuccessfulTrace;
894 TracedCallback<uint64_t, uint16_t, uint16_t> m_randomAccessErrorTrace;
899 TracedCallback<uint64_t, uint16_t, uint16_t> m_connectionEstablishedTrace;
904 TracedCallback<uint64_t, uint16_t, uint16_t, uint8_t> m_connectionTimeoutTrace;
909 TracedCallback<uint64_t, uint16_t, uint16_t> m_connectionReconfigurationTrace;
914 TracedCallback<uint64_t, uint16_t, uint16_t, uint16_t> m_handoverStartTrace;
919 TracedCallback<uint64_t, uint16_t, uint16_t> m_handoverEndOkTrace;
924 TracedCallback<uint64_t, uint16_t, uint16_t> m_handoverEndErrorTrace;
930 TracedCallback<Ptr<NrUeRrc>, std::list<NrRrcSap::SCellToAddMod>> m_sCarrierConfiguredTrace;
936 TracedCallback<uint64_t, uint16_t, uint16_t> m_srb1CreatedTrace;
942 TracedCallback<uint64_t, uint16_t, uint16_t, uint8_t> m_drbCreatedTrace;
948 TracedCallback<uint64_t, uint16_t, uint16_t, std::string, uint8_t> m_phySyncDetectionTrace;
953 TracedCallback<uint64_t, uint16_t, uint16_t> m_radioLinkFailureTrace;
956 bool m_connectionPending;
958 bool m_hasReceivedMib;
960 bool m_hasReceivedSib1;
962 bool m_hasReceivedSib2;
965 NrRrcSap::SystemInformationBlockType1 m_lastSib1;
968 std::set<uint16_t> m_acceptableCell;
971 uint32_t m_csgWhiteList;
984 std::map<uint8_t, NrRrcSap::MeasIdToAddMod> measIdList;
985 std::map<uint8_t, NrRrcSap::MeasObjectToAddMod> measObjectList;
986 std::map<uint8_t, NrRrcSap::ReportConfigToAddMod> reportConfigList;
987 NrRrcSap::QuantityConfig quantityConfig;
998 VarMeasConfig m_varMeasConfig;
1007 struct VarMeasReport
1010 std::set<uint16_t> cellsTriggeredList;
1011 uint32_t numberOfReportsSent;
1012 EventId periodicReportTimer;
1020 std::map<uint8_t, VarMeasReport> m_varMeasReportList;
1025 typedef std::list<uint16_t> ConcernedCells_t;
1045 void VarMeasReportListAdd(uint8_t measId, ConcernedCells_t enteringCells);
1065 void VarMeasReportListErase(uint8_t measId, ConcernedCells_t leavingCells,
bool reportOnLeave);
1077 void VarMeasReportListClear(uint8_t measId);
1086 uint32_t carrierFreq;
1102 std::map<uint16_t, MeasValues> m_storedMeasValues;
1107 std::map<uint16_t, std::map<uint8_t, MeasValues>> m_storedMeasValuesPerCarrier;
1125 std::map<uint16_t, MeasValues> m_storedScellMeasValues;
1132 struct PendingTrigger_t
1135 ConcernedCells_t concernedCells;
1149 std::map<uint8_t, std::list<PendingTrigger_t>> m_enteringTriggerQueue;
1161 std::map<uint8_t, std::list<PendingTrigger_t>> m_leavingTriggerQueue;
1180 void CancelEnteringTrigger(uint8_t measId);
1201 void CancelEnteringTrigger(uint8_t measId, uint16_t cellId);
1220 void CancelLeavingTrigger(uint8_t measId);
1241 void CancelLeavingTrigger(uint8_t measId, uint16_t cellId);
1254 EventId m_connectionTimeout;
1260 void ConnectionTimeout();
1293 EventId m_radioLinkFailureDetected;
1295 uint8_t m_noOfSyncIndications;
1298 bool m_leaveConnectedMode;
1301 uint16_t m_previousCellId;
1303 uint8_t m_connEstFailCountLimit;
1306 uint8_t m_connEstFailCount;
1317 void RadioLinkFailureDetected();
1325 void DoNotifyInSync();
1333 void DoNotifyOutOfSync();
1343 void DoResetSyncIndicationCounter();
1359 void ResetRlfParams();