A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-ue-rrc.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3 * Copyright (c) 2018 Fraunhofer ESK : RLF extensions
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation;
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 *
18 * Author: Nicola Baldo <nbaldo@cttc.es>
19 * Budiarto Herman <budiarto.herman@magister.fi>
20 * Modified by:
21 * Danilo Abrignani <danilo.abrignani@unibo.it> (Carrier Aggregation - GSoC 2015)
22 * Biljana Bojovic <biljana.bojovic@cttc.es> (Carrier Aggregation)
23 * Vignesh Babu <ns3-dev@esk.fraunhofer.de> (RLF extensions)
24 */
25
26#ifndef LTE_UE_RRC_H
27#define LTE_UE_RRC_H
28
29#include "lte-as-sap.h"
30#include "lte-pdcp-sap.h"
31#include "lte-rrc-sap.h"
32#include "lte-ue-ccm-rrc-sap.h"
33#include "lte-ue-cmac-sap.h"
34#include "lte-ue-cphy-sap.h"
35
36#include <ns3/object.h>
37#include <ns3/packet.h>
38#include <ns3/traced-callback.h>
39
40#include <map>
41#include <set>
42#include <vector>
43
44namespace ns3
45{
46
47/**
48 * \brief Artificial delay of UE measurements procedure.
49 *
50 * i.e. the period between the time layer-1-filtered measurements from PHY
51 * layer is received and the earliest time the actual measurement report
52 * submission to the serving cell is invoked.
53 *
54 * This delay exists because of racing condition between several UE measurements
55 * functions which happen to be scheduled at the same time. The delay ensures
56 * that:
57 * - measurements (e.g., layer-3 filtering) are always performed before
58 * reporting, thus the latter always use the latest measured RSRP and RSRQ;
59 * and
60 * - time-to-trigger check is always performed before the reporting, so there
61 * would still be chance for it to cancel the reporting if necessary.
62 */
64
65class LteRlc;
66class LteMacSapProvider;
67class LteUeCmacSapUser;
68class LteUeCmacSapProvider;
69class LteDataRadioBearerInfo;
70class LteSignalingRadioBearerInfo;
71
72/**
73 *
74 *
75 */
76class LteUeRrc : public Object
77{
78 /// allow UeMemberLteUeCmacSapUser class friend access
80 /// allow UeRrcMemberLteEnbCmacSapUser class friend access
82 /// allow LtePdcpSpecificLtePdcpSapUser<LteUeRrc> class friend access
84 /// allow MemberLteAsSapProvider<LteUeRrc> class friend access
85 friend class MemberLteAsSapProvider<LteUeRrc>;
86 /// allow MemberLteUeCphySapUser<LteUeRrc> class friend access
87 friend class MemberLteUeCphySapUser<LteUeRrc>;
88 /// allow MemberLteUeRrcSapProvider<LteUeRrc> class friend access
90 /// allow MemberLteUeCcmRrcSapUser<LteUeRrc> class friend access
92
93 public:
94 /**
95 * The states of the UE RRC entity
96 *
97 */
98 enum State
99 {
114 };
115
116 /**
117 * create an RRC instance for use within an ue
118 *
119 */
120 LteUeRrc();
121
122 /**
123 * Destructor
124 */
125 ~LteUeRrc() override;
126
127 // inherited from Object
128 private:
129 void DoInitialize() override;
130 void DoDispose() override;
131
132 public:
133 /**
134 * \brief Get the type ID.
135 * \return the object TypeId
136 */
137 static TypeId GetTypeId();
138
139 /// Initialize SAP
140 void InitializeSap();
141
142 /**
143 * set the CPHY SAP this RRC should use to interact with the PHY
144 *
145 * \param s the CPHY SAP Provider
146 */
148 /**
149 * set the CPHY SAP this RRC should use to interact with the PHY
150 *
151 * \param s the CPHY SAP Provider
152 * \param index the index
153 */
154 void SetLteUeCphySapProvider(LteUeCphySapProvider* s, uint8_t index);
155
156 /**
157 *
158 *
159 * \return s the CPHY SAP User interface offered to the PHY by this RRC
160 */
162 /**
163 *
164 * \param index the index
165 * \return s the CPHY SAP User interface offered to the PHY by this RRC
166 */
168
169 /**
170 * set the CMAC SAP this RRC should interact with
171 * \brief This function is overloaded to maintain backward compatibility
172 * \param s the CMAC SAP Provider to be used by this RRC
173 */
175 /**
176 * set the CMAC SAP this RRC should interact with
177 * \brief This function is overloaded to maintain backward compatibility
178 * \param s the CMAC SAP Provider to be used by this RRC
179 * \param index the index
180 */
181 void SetLteUeCmacSapProvider(LteUeCmacSapProvider* s, uint8_t index);
182
183 /**
184 * \brief This function is overloaded to maintain backward compatibility
185 * \return s the CMAC SAP User interface offered to the MAC by this RRC
186 */
188 /**
189 * \brief This function is overloaded to maintain backward compatibility
190 * \param index the index
191 * \return s the CMAC SAP User interface offered to the MAC by this RRC
192 */
194
195 /**
196 * set the RRC SAP this RRC should interact with
197 *
198 * \param s the RRC SAP User to be used by this RRC
199 */
201
202 /**
203 *
204 *
205 * \return s the RRC SAP Provider interface offered to the MAC by this RRC
206 */
208
209 /**
210 * set the MAC SAP provider. The ue RRC does not use this
211 * directly, but it needs to provide it to newly created RLC instances.
212 *
213 * \param s the MAC SAP provider that will be used by all
214 * newly created RLC instances
215 */
217
218 /**
219 * Set the AS SAP user to interact with the NAS entity
220 *
221 * \param s the AS SAP user
222 */
223 void SetAsSapUser(LteAsSapUser* s);
224
225 /**
226 *
227 *
228 * \return the AS SAP provider exported by this RRC
229 */
231
232 /**
233 * set the Component Carrier Management SAP this RRC should interact with
234 *
235 * \param s the Component Carrier Management SAP Provider to be used by this RRC
236 */
238
239 /**
240 * Get the Component Carrier Management SAP offered by this RRC
241 * \return s the Component Carrier Management SAP User interface offered to the
242 * carrier component selection algorithm by this RRC
243 */
245
246 /**
247 *
248 * \param imsi the unique UE identifier
249 */
250 void SetImsi(uint64_t imsi);
251
252 /**
253 * \brief Store the previous cell id
254 *
255 * \param cellId The cell id of the previous cell the UE was attached to
256 */
257 void StorePreviousCellId(uint16_t cellId);
258
259 /**
260 *
261 * \return imsi the unique UE identifier
262 */
263 uint64_t GetImsi() const;
264
265 /**
266 *
267 * \return the C-RNTI of the user
268 */
269 uint16_t GetRnti() const;
270
271 /**
272 *
273 * \return the CellId of the attached Enb
274 */
275 uint16_t GetCellId() const;
276
277 /**
278 * \param cellId cell identifier
279 * \return true if cellId is the serving cell for this UE
280 */
281 bool IsServingCell(uint16_t cellId) const;
282
283 /**
284 * \return the uplink bandwidth in RBs
285 */
286 uint8_t GetUlBandwidth() const;
287
288 /**
289 * \return the downlink bandwidth in RBs
290 */
291 uint8_t GetDlBandwidth() const;
292
293 /**
294 * \return the downlink carrier frequency (EARFCN)
295 */
296 uint32_t GetDlEarfcn() const;
297
298 /**
299 * \return the uplink carrier frequency (EARFCN)
300 */
301 uint32_t GetUlEarfcn() const;
302
303 /**
304 *
305 * \return the current state
306 */
307 State GetState() const;
308
309 /**
310 * \brief Get the previous cell id
311 *
312 * \return The cell Id of the previous cell the UE was attached to.
313 */
314 uint16_t GetPreviousCellId() const;
315
316 /**
317 *
318 *
319 * \param val true if RLC SM is to be used, false if RLC UM/AM are to be used
320 */
321 void SetUseRlcSm(bool val);
322
323 /**
324 * \param s The UE RRC state.
325 * \return The string representation of the given state.
326 */
327 static const std::string ToString(LteUeRrc::State s);
328
329 /**
330 * TracedCallback signature for imsi, cellId and rnti events.
331 *
332 * \param [in] imsi
333 * \param [in] cellId
334 */
335 typedef void (*CellSelectionTracedCallback)(uint64_t imsi, uint16_t cellId);
336
337 /**
338 * TracedCallback signature for imsi, cellId and rnti events.
339 *
340 * \param [in] imsi
341 * \param [in] cellId
342 * \param [in] rnti
343 */
344 typedef void (*ImsiCidRntiTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti);
345
346 /**
347 * TracedCallback signature for MIBReceived, Sib1Received and
348 * HandoverStart events.
349 *
350 * \param [in] imsi
351 * \param [in] cellId
352 * \param [in] rnti
353 * \param [in] otherCid
354 */
355 typedef void (*MibSibHandoverTracedCallback)(uint64_t imsi,
356 uint16_t cellId,
357 uint16_t rnti,
358 uint16_t otherCid);
359
360 /**
361 * TracedCallback signature for state transition events.
362 *
363 * \param [in] imsi
364 * \param [in] cellId
365 * \param [in] rnti
366 * \param [in] oldState
367 * \param [in] newState
368 */
369 typedef void (*StateTracedCallback)(uint64_t imsi,
370 uint16_t cellId,
371 uint16_t rnti,
372 State oldState,
373 State newState);
374
375 /**
376 * TracedCallback signature for secondary carrier configuration events.
377 *
378 * \param [in] Pointer to UE RRC
379 * \param [in] List of LteRrcSap::SCellToAddMod
380 */
382 std::list<LteRrcSap::SCellToAddMod>);
383
384 /**
385 * TracedCallback signature for in-sync and out-of-sync detection events.
386 *
387 *
388 * \param [in] imsi
389 * \param [in] rnti
390 * \param [in] cellId
391 * \param [in] type
392 * \param [in] count
393 */
394 typedef void (*PhySyncDetectionTracedCallback)(uint64_t imsi,
395 uint16_t rnti,
396 uint16_t cellId,
397 std::string type,
398 uint16_t count);
399
400 /**
401 * TracedCallback signature for imsi, cellId, rnti and counter for
402 * random access events.
403 *
404 * \param [in] imsi
405 * \param [in] cellId
406 * \param [in] rnti
407 * \param [in] count
408 */
409 typedef void (*ImsiCidRntiCountTracedCallback)(uint64_t imsi,
410 uint16_t cellId,
411 uint16_t rnti,
412 uint8_t count);
413
414 private:
415 // PDCP SAP methods
416 /**
417 * Receive PDCP SDU function
418 *
419 * \param params LtePdcpSapUser::ReceivePdcpSduParameters
420 */
422
423 // CMAC SAP methods
424 /**
425 * Set temporary cell rnti function
426 *
427 * \param rnti RNTI
428 */
429 void DoSetTemporaryCellRnti(uint16_t rnti);
430 /// Notify random access successful function
432 /// Notify random access failed function
434
435 // LTE AS SAP methods
436 /**
437 * Set CSG white list function
438 *
439 * \param csgId CSG ID
440 */
441 void DoSetCsgWhiteList(uint32_t csgId);
442 /**
443 * Force camped on ENB function
444 *
445 * \param cellId the cell ID
446 * \param dlEarfcn the DL EARFCN
447 */
448 void DoForceCampedOnEnb(uint16_t cellId, uint32_t dlEarfcn);
449 /**
450 * Start cell selection function
451 *
452 * \param dlEarfcn the DL EARFCN
453 */
454 void DoStartCellSelection(uint32_t dlEarfcn);
455 /// Connect function
456 void DoConnect();
457 /**
458 * Send data function
459 *
460 * \param packet the packet
461 * \param bid the BID
462 */
463 void DoSendData(Ptr<Packet> packet, uint8_t bid);
464 /// Disconnect function
465 void DoDisconnect();
466
467 // CPHY SAP methods
468 /**
469 * Receive master information block function
470 *
471 * \param cellId the cell ID
472 * \param msg LteRrcSap::MasterInformationBlock
473 */
475 /**
476 * Receive system information block type 1 function
477 *
478 * \param cellId the cell ID
479 * \param msg LteRrcSap::SystemInformationBlockType1
480 */
481 void DoRecvSystemInformationBlockType1(uint16_t cellId,
483 /**
484 * Report UE measurements function
485 *
486 * \param params LteUeCphySapUser::UeMeasurementsParameters
487 */
489
490 // RRC SAP methods
491
492 /**
493 * Part of the RRC protocol. Implement the LteUeRrcSapProvider::CompleteSetup interface.
494 * \param params the LteUeRrcSapProvider::CompleteSetupParameters
495 */
497 /**
498 * Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvSystemInformation interface.
499 * \param msg the LteRrcSap::SystemInformation
500 */
502 /**
503 * Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionSetup
504 * interface.
505 * \param msg the LteRrcSap::RrcConnectionSetup
506 */
508 /**
509 * Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReconfiguration
510 * interface.
511 * \param msg the LteRrcSap::RrcConnectionReconfiguration
512 */
514 /**
515 * Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishment
516 * interface.
517 * \param msg LteRrcSap::RrcConnectionReestablishment
518 */
520 /**
521 * Part of the RRC protocol. Implement the
522 * LteUeRrcSapProvider::RecvRrcConnectionReestablishmentReject interface.
523 * \param msg LteRrcSap::RrcConnectionReestablishmentReject
524 */
527 /**
528 * Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionRelease
529 * interface.
530 * \param msg LteRrcSap::RrcConnectionRelease
531 */
533 /**
534 * Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReject
535 * interface.
536 * \param msg the LteRrcSap::RrcConnectionReject
537 */
539
540 /**
541 * RRC CCM SAP USER Method
542 * \param noOfComponentCarriers the number of component carriers
543 */
544 void DoSetNumberOfComponentCarriers(uint16_t noOfComponentCarriers);
545
546 // INTERNAL METHODS
547
548 /**
549 * \brief Go through the list of measurement results, choose the one with the
550 * strongest RSRP, and tell PHY to synchronize to it.
551 *
552 * \warning This function is a part of the *initial cell selection* procedure,
553 * hence must be only executed during IDLE mode.
554 */
556
557 /**
558 * \brief Performs cell selection evaluation to the current serving cell.
559 *
560 * \warning This function is a part of the *initial cell selection* procedure,
561 * hence must be only executed during IDLE mode and specifically
562 * during the state when the UE just received the first SIB1 message
563 * from the serving cell.
564 *
565 * This function assumes that the required information for the evaluation
566 * procedure have been readily gathered, such as *measurement results*, MIB,
567 * and SIB1. Please refer to the LTE module's Design Documentation for more
568 * details on the evaluation process.
569 *
570 * If the cell passes the evaluation, the UE will immediately camp to it.
571 * Otherwise, the UE will pick another cell and restart the cell selection
572 * procedure.
573 */
575
576 /**
577 * \brief Update the current measurement configuration #m_varMeasConfig.
578 * \param mc measurements to be performed by the UE
579 *
580 * Implements Section 5.5.2 "Measurement configuration" of 3GPP TS 36.331.
581 * The supported subfunctions are:
582 * - Measurement object removal
583 * - Measurement object addition/ modification
584 * - Reporting configuration removal
585 * - Reporting configuration addition/ modification
586 * - Quantity configuration
587 * - Measurement identity removal
588 * - Measurement identity addition/ modification
589 *
590 * The subfunctions that will be invoked are determined by the content of
591 * the given measurement configuration.
592 *
593 * Note the existence of some chain reaction behaviours:
594 * - Removal of measurement object or reporting configuration also removes any
595 * impacted measurement identities.
596 * - Removal of measurement identity also removes any associated *reporting
597 * entry* from #m_varMeasReportList.
598 * - Modification to measurement object or reporting configuration also
599 * removes any reporting entries of the impacted measurement identities
600 * from #m_varMeasReportList.
601 * - Modification to quantity configuration also removes all existing
602 * reporting entries from #m_varMeasReportList, regardless of measurement
603 * identity.
604 *
605 * Some unsupported features:
606 * - List of neighbouring cells
607 * - List of black cells
608 * - CGI reporting
609 * - Periodical reporting configuration
610 * - Measurement gaps
611 * - s-Measure
612 * - Speed-dependent scaling
613 *
614 * \warning There is a possibility that the input argument (of type
615 * LteRrcSap::MeasConfig) may contain information in fields related
616 * to the unsupported features. In such case, the function will raise
617 * an error.
618 *
619 * The measurement configuration given as an argument is typically provided by
620 * the serving eNodeB. It is transmitted through the RRC protocol when the UE
621 * joins the cell, e.g., by connection establishment or by incoming handover.
622 * The information inside the argument can be configured from the eNodeB side,
623 * which would then equally apply to all other UEs attached to the same
624 * eNodeB. See the LTE module's User Documentation for more information on
625 * configuring this.
626 *
627 * \sa LteRrcSap::MeasConfig, LteUeRrc::m_varMeasReportList
628 */
630
631 /**
632 * \brief Keep the given measurement result as the latest measurement figures,
633 * to be utilised by UE RRC functions.
634 * \param cellId the cell ID of the measured cell
635 * \param rsrp measured RSRP value to be saved (in dBm)
636 * \param rsrq measured RSRQ value to be saved (in dB)
637 * \param useLayer3Filtering
638 * \param componentCarrierId
639 * \todo Remove the useLayer3Filtering argument
640 *
641 * Implements Section 5.5.3.2 "Layer 3 filtering" of 3GPP TS 36.331. *Layer-3
642 * filtering* is applied to the given measurement results before saved to
643 * #m_storedMeasValues. The filtering is however disabled when the UE is in
644 * IDLE mode, i.e., saving unfiltered values.
645 *
646 * Layer-3 filtering is influenced by a filter coefficient, which determines
647 * the strength of the filtering. This coefficient is provided by the active
648 * *quantity configuration* in #m_varMeasConfig, which is configured by the
649 * LteUeRrc::ApplyMeasConfig. Details on how the coefficient works and how to
650 * modify it can be found in LTE module's Design Documentation.
651 *
652 * \sa LteUeRrc::m_storedMeasValues
653 */
654 void SaveUeMeasurements(uint16_t cellId,
655 double rsrp,
656 double rsrq,
657 bool useLayer3Filtering,
658 uint8_t componentCarrierId);
659
660 /**
661 * \brief Evaluate the reporting criteria of a measurement identity and
662 * invoke some reporting actions based on the result.
663 * \param measId the measurement identity to be evaluated
664 *
665 * Implements Section 5.5.4.1 "Measurement report triggering - General" of
666 * 3GPP TS 36.331. This function take into use the latest measurement results
667 * and evaluate them against the *entering condition* and the *leaving
668 * condition* of the measurement identity's reporting criteria. The evaluation
669 * also take into account other defined criteria, such as *hysteresis* and
670 * *time-to-trigger*.
671 *
672 * The entering and leaving condition to be evaluated are determined by the
673 * *event type* of the measurement identity's reporting criteria. As defined
674 * in LteRrcSap::ReportConfigEutra, there 5 supported events. The gore details
675 * of these events can be found in Section 5.5.4 of 3GPP TS 36.331.
676 *
677 * An applicable entering condition (i.e., the condition evaluates to true)
678 * will insert a new *reporting entry* to #m_varMeasReportList, so
679 * *measurement reports* would be produced and submitted to eNodeB. On the
680 * other hand, an applicable leaving condition will remove the related
681 * reporting entry from #m_varMeasReportList, so submission of related
682 * measurement reports to eNodeB will be suspended.
683 */
684 void MeasurementReportTriggering(uint8_t measId);
685
686 /**
687 * \brief Produce a proper measurement report from the given measurement
688 * identity's reporting entry in #m_varMeasReportList and then submit
689 * it to the serving eNodeB.
690 * \param measId the measurement identity which report is to be submitted.
691 *
692 * Implements Section 5.5.5 "Measurement reporting" of 3GPP TS 36.331.
693 * Producing a *measurement report* involves several tasks such as:
694 * - including the measurement results of the serving cell into the report;
695 * - selecting some neighbour cells which triggered the reporting (i.e., those
696 * in *cellsTriggeredList*) to be included in the report;
697 * - sorting the order of neighbour cells in the report by their RSRP or RSRQ
698 * measurement results (the highest comes first); and
699 * - ensuring the number of neighbour cells in the report is under the
700 * *maxReportCells* limit defined by the measurement identity's reporting
701 * configuration.
702 *
703 * The RSRP and RSRQ measurement results included in the report are expressed
704 * in 3GPP-specified range format. They are converted from dBm and dB units
705 * using EutranMeasurementMapping::Dbm2RsrpRange and
706 * EutranMeasurementMapping::Db2RsrqRange functions.
707 *
708 * Measurement report is submitted to the serving eNodeB through the *RRC
709 * protocol*. The LteUeRrcSapUser::SendMeasurementReport method of the *UE RRC
710 * SAP* facilitates this submission.
711 *
712 * After the submission, the function will repeat itself after a certain
713 * interval. The interval length may vary from 120 ms to 60 minutes and is
714 * determined by the *report interval* parameter specified by the measurement
715 * identity's reporting configuration.
716 */
717 void SendMeasurementReport(uint8_t measId);
718
719 /**
720 * Apply radio resource config dedicated.
721 * \param rrcd LteRrcSap::RadioResourceConfigDedicated
722 */
724 /**
725 * Apply radio resource config dedicated secondary carrier.
726 * \param nonCec LteRrcSap::NonCriticalExtensionConfiguration
727 */
730 /// Start connection function
731 void StartConnection();
732 /**
733 * \brief Leave connected mode method
734 * Resets the UE back to an appropriate state depending
735 * on the nature of cause. For example, the UE is move
736 * to the IDLE_START state upon radio link failure. At
737 * RRC, all radio bearers except SRB 0 are removed,
738 * measurement reports are cleared and the appropriate
739 * flags are reset to their default values. This method
740 * in turn triggers the reset methods of UE PHY and MAC layers.
741 */
742 void LeaveConnectedMode();
743 /// Dispose old SRB1
744 void DisposeOldSrb1();
745 /**
746 * Bid 2 DR bid.
747 * \param bid the BID
748 * \returns the DR bid
749 */
750 uint8_t Bid2Drbid(uint8_t bid);
751 /**
752 * Switch the UE RRC to the given state.
753 * \param s the destination state
754 */
755 void SwitchToState(State s);
756
757 std::map<uint8_t, uint8_t> m_bid2DrbidMap; ///< bid to DR bid map
758
759 std::vector<LteUeCphySapUser*> m_cphySapUser; ///< UE CPhy SAP user
760 std::vector<LteUeCphySapProvider*> m_cphySapProvider; ///< UE CPhy SAP provider
761
762 std::vector<LteUeCmacSapUser*> m_cmacSapUser; ///< UE CMac SAP user
763 std::vector<LteUeCmacSapProvider*> m_cmacSapProvider; ///< UE CMac SAP provider
764
765 LteUeRrcSapUser* m_rrcSapUser; ///< RRC SAP user
766 LteUeRrcSapProvider* m_rrcSapProvider; ///< RRC SAP provider
767
768 LteMacSapProvider* m_macSapProvider; ///< MAC SAP provider
769 LtePdcpSapUser* m_drbPdcpSapUser; ///< DRB PDCP SAP user
770
771 LteAsSapProvider* m_asSapProvider; ///< AS SAP provider
772 LteAsSapUser* m_asSapUser; ///< AS SAP user
773
774 // Receive API calls from the LteUeComponentCarrierManager instance.
775 // LteCcmRrcSapUser* m_ccmRrcSapUser;
776 /// Interface to the LteUeComponentCarrierManage instance.
777 LteUeCcmRrcSapProvider* m_ccmRrcSapProvider; ///< CCM RRC SAP provider
778 LteUeCcmRrcSapUser* m_ccmRrcSapUser; ///< CCM RRC SAP user
779
780 /// The current UE RRC state.
782
783 /// The unique UE identifier.
784 uint64_t m_imsi;
785 /**
786 * The `C-RNTI` attribute. Cell Radio Network Temporary Identifier.
787 */
788 uint16_t m_rnti;
789 /**
790 * The `CellId` attribute. Serving cell identifier.
791 */
792 uint16_t m_cellId;
793
794 /**
795 * The `Srb0` attribute. SignalingRadioBearerInfo for SRB0.
796 */
798 /**
799 * The `Srb1` attribute. SignalingRadioBearerInfo for SRB1.
800 */
802 /**
803 * SRB1 configuration before RRC connection reconfiguration. To be deleted
804 * soon by DisposeOldSrb1().
805 */
807 /**
808 * The `DataRadioBearerMap` attribute. List of UE RadioBearerInfo for Data
809 * Radio Bearers by LCID.
810 */
811 std::map<uint8_t, Ptr<LteDataRadioBearerInfo>> m_drbMap;
812
813 /**
814 * True if RLC SM is to be used, false if RLC UM/AM are to be used.
815 * Can be modified using SetUseRlcSm().
816 */
818
819 uint8_t m_lastRrcTransactionIdentifier; ///< last RRC transaction identifier
820
822
823 uint16_t m_dlBandwidth; /**< Downlink bandwidth in RBs. */
824 uint16_t m_ulBandwidth; /**< Uplink bandwidth in RBs. */
825
826 uint32_t m_dlEarfcn; /**< Downlink carrier frequency. */
827 uint32_t m_ulEarfcn; /**< Uplink carrier frequency. */
828 std::list<LteRrcSap::SCellToAddMod> m_sCellToAddModList; /**< Secondary carriers. */
829
830 /**
831 * The `MibReceived` trace source. Fired upon reception of Master Information
832 * Block. Exporting IMSI, the serving cell ID, RNTI, and the source cell ID.
833 */
835 /**
836 * The `Sib1Received` trace source. Fired upon reception of System
837 * Information Block Type 1. Exporting IMSI, the serving cell ID, RNTI, and
838 * the source cell ID.
839 */
841 /**
842 * The `Sib2Received` trace source. Fired upon reception of System
843 * Information Block Type 2. Exporting IMSI, the serving cell ID, RNTI.
844 */
846 /**
847 * The `StateTransition` trace source. Fired upon every UE RRC state
848 * transition. Exporting IMSI, the serving cell ID, RNTI, old state, and new
849 * state.
850 */
852 /**
853 * The `InitialCellSelectionEndOk` trace source. Fired upon successful
854 * initial cell selection procedure. Exporting IMSI and the selected cell ID.
855 */
857 /**
858 * The `InitialCellSelectionEndError` trace source. Fired upon failed initial
859 * cell selection procedure. Exporting IMSI and the cell ID under evaluation.
860 */
862 /**
863 * The `RandomAccessSuccessful` trace source. Fired upon successful
864 * completion of the random access procedure. Exporting IMSI, cell ID, and
865 * RNTI.
866 */
868 /**
869 * The `RandomAccessError` trace source. Fired upon failure of the random
870 * access procedure. Exporting IMSI, cell ID, and RNTI.
871 */
873 /**
874 * The `ConnectionEstablished` trace source. Fired upon successful RRC
875 * connection establishment. Exporting IMSI, cell ID, and RNTI.
876 */
878 /**
879 * The `ConnectionTimeout` trace source. Fired upon timeout RRC connection
880 * establishment because of T300. Exporting IMSI, cell ID, and RNTI.
881 */
883 /**
884 * The `ConnectionReconfiguration` trace source. Fired upon RRC connection
885 * reconfiguration. Exporting IMSI, cell ID, and RNTI.
886 */
888 /**
889 * The `HandoverStart` trace source. Fired upon start of a handover
890 * procedure. Exporting IMSI, source cell ID, RNTI, and target cell ID.
891 */
893 /**
894 * The `HandoverEndOk` trace source. Fired upon successful termination of a
895 * handover procedure. Exporting IMSI, cell ID, and RNTI.
896 */
898 /**
899 * The `HandoverEndError` trace source. Fired upon failure of a handover
900 * procedure. Exporting IMSI, cell ID, and RNTI.
901 */
903 /**
904 * The `SCarrierConfigured` trace source. Fired after the configuration
905 * of secondary carriers received through RRC Connection Reconfiguration
906 * message.
907 */
908 TracedCallback<Ptr<LteUeRrc>, std::list<LteRrcSap::SCellToAddMod>> m_sCarrierConfiguredTrace;
909 /**
910 * The `Srb1Created` trace source. Fired when SRB1 is created, i.e.
911 * the RLC and PDCP entities are created for logical channel = 1.
912 * Exporting IMSI, cell ID, and RNTI
913 */
915 /**
916 * The `DrbCreated` trace source. Fired when DRB is created, i.e.
917 * the RLC and PDCP entities are created for one logical channel.
918 * Exporting IMSI, cell ID, RNTI, LCID.
919 */
921 /**
922 * The 'PhySyncDetection' trace source. Fired when UE RRC
923 * receives in-sync or out-of-sync indications from UE PHY
924 *
925 */
927 /**
928 * The 'RadioLinkFailure' trace source. Fired when T310 timer expires.
929 *
930 */
932
933 /// True if a connection request by upper layers is pending.
935 /// True if MIB was received for the current cell.
937 /// True if SIB1 was received for the current cell.
939 /// True if SIB2 was received for the current cell.
941
942 /// Stored content of the last SIB1 received.
944
945 /// List of cell ID of acceptable cells for cell selection that have been detected.
946 std::set<uint16_t> m_acceptableCell;
947
948 /// List of CSG ID which this UE entity has access to.
950
951 // INTERNAL DATA STRUCTURE RELATED TO UE MEASUREMENTS
952
953 /**
954 * \brief Includes the accumulated configuration of the measurements to be
955 * performed by the UE.
956 *
957 * Based on 3GPP TS 36.331 section 7.1. Also note that some optional variables
958 * in the specification are omitted.
959 */
961 {
962 std::map<uint8_t, LteRrcSap::MeasIdToAddMod> measIdList; ///< measure ID list
963 std::map<uint8_t, LteRrcSap::MeasObjectToAddMod> measObjectList; ///< measure object list
964 std::map<uint8_t, LteRrcSap::ReportConfigToAddMod> reportConfigList; ///< report config list
966 double aRsrp; ///< RSRP
967 double aRsrq; ///< RSRQ
968 };
969
970 /**
971 * \brief Includes the accumulated configuration of the measurements to be
972 * performed by the UE.
973 *
974 * Based on 3GPP TS 36.331 section 7.1.
975 */
977
978 /**
979 * \brief Represents a single measurement reporting entry., which includes
980 * information about a measurement for which the triggering conditions
981 * have been met.
982 *
983 * Based on 3GPP TS 36.331 section 7.1.
984 */
986 {
987 uint8_t measId; ///< measure ID
988 std::set<uint16_t> cellsTriggeredList; ///< note: only E-UTRA is supported.
989 uint32_t numberOfReportsSent; ///< number of reports sent
990 EventId periodicReportTimer; ///< periodic report timer
991 };
992
993 /**
994 * \brief The list of active reporting entries, indexed by the measurement
995 * identity which triggered the reporting. Includes information about
996 * measurements for which the triggering conditions have been met.
997 */
998 std::map<uint8_t, VarMeasReport> m_varMeasReportList;
999
1000 /**
1001 * \brief List of cell IDs which are responsible for a certain trigger.
1002 */
1003 typedef std::list<uint16_t> ConcernedCells_t;
1004
1005 /**
1006 * \brief Compose a new reporting entry of the given measurement identity,
1007 * insert it into #m_varMeasReportList, and set it up for submission
1008 * to eNodeB.
1009 * \param measId the measurement identity which the new reporting entry will
1010 * be based upon
1011 * \param enteringCells the cells which are responsible for triggering the
1012 * reporting (i.e., successfully fulfilling the entering
1013 * condition of the measurement identity) and will be
1014 * included in the measurement report.
1015 *
1016 * \note If an existing reporting entry with the same measurement identity has
1017 * already existed in #m_varMeasReportList, the function will update it
1018 * by adding the entering cells into the existing reporting entry.
1019 * \note When time-to-trigger is enabled for this measurement identity, the
1020 * function will also remove the related trigger from the
1021 * #m_enteringTriggerQueue.
1022 */
1023 void VarMeasReportListAdd(uint8_t measId, ConcernedCells_t enteringCells);
1024
1025 /**
1026 * \brief Remove some cells from an existing reporting entry in
1027 * #m_varMeasReportList.
1028 * \param measId the measurement identity to be removed from
1029 * #m_varMeasReportList, must already exists there, otherwise
1030 * an error would be raised
1031 * \param leavingCells the cells which are about to be removed
1032 * \param reportOnLeave when true, will make the function send one last
1033 * measurement report to eNodeB before removing it
1034 *
1035 * \note If a given cell is not found in the reporting entry, the function
1036 * will quietly continue.
1037 * \note If the removal has removed all the cells in the reporting entry, the
1038 * function will remove the reporting entry as well.
1039 * \note When time-to-trigger is enabled for this measurement identity, the
1040 * function will also remove the related trigger from the
1041 * #m_leavingTriggerQueue.
1042 */
1043 void VarMeasReportListErase(uint8_t measId, ConcernedCells_t leavingCells, bool reportOnLeave);
1044
1045 /**
1046 * \brief Remove the reporting entry of the given measurement identity from
1047 * #m_varMeasReportList.
1048 * \param measId the measurement identity to be removed from
1049 * #m_varMeasReportList, must already exists there, otherwise
1050 * an error would be raised
1051 *
1052 * Any events or triggers related with this measurement identity will be
1053 * canceled as well.
1054 */
1055 void VarMeasReportListClear(uint8_t measId);
1056
1057 /**
1058 * \brief Represents a measurement result from a certain cell.
1059 */
1061 {
1062 double rsrp; ///< Measured RSRP in dBm.
1063 double rsrq; ///< Measured RSRQ in dB.
1064 uint32_t carrierFreq; ///< Measurement object frequency
1065 };
1066
1067 /**
1068 * \brief Internal storage of the latest measurement results from all detected
1069 * detected cells, indexed by the cell ID where the measurement was
1070 * taken from.
1071 *
1072 * Each *measurement result* comprises of RSRP (in dBm) and RSRQ (in dB).
1073 *
1074 * In IDLE mode, the measurement results are used by the *initial cell
1075 * selection* procedure. While in CONNECTED mode, *layer-3 filtering* is
1076 * applied to the measurement results and they are used by *UE measurements*
1077 * function (LteUeRrc::MeasurementReportTriggering and
1078 * LteUeRrc::SendMeasurementReport).
1079 */
1080 std::map<uint16_t, MeasValues> m_storedMeasValues;
1081
1082 /**
1083 * \brief Stored measure values per carrier.
1084 */
1085 std::map<uint16_t, std::map<uint8_t, MeasValues>> m_storedMeasValuesPerCarrier;
1086
1087 /**
1088 * \brief Internal storage of the latest measurement results from all detected
1089 * detected Secondary carrier component, indexed by the carrier component ID
1090 * where the measurement was taken from.
1091 *
1092 * Each *measurement result* comprises of RSRP (in dBm) and RSRQ (in dB).
1093 *
1094 * In IDLE mode, the measurement results are used by the *initial cell
1095 * selection* procedure. While in CONNECTED mode, *layer-3 filtering* is
1096 * applied to the measurement results and they are used by *UE measurements*
1097 * function:
1098 * - LteUeRrc::MeasurementReportTriggering: in this case it is not set any
1099 * measurement related to secondary carrier components since the
1100 * A6 event is not implemented
1101 * - LteUeRrc::SendMeasurementReport: in this case the report are sent.
1102 */
1103 std::map<uint16_t, MeasValues> m_storedScellMeasValues;
1104
1105 /**
1106 * \brief Represents a single triggered event from a measurement identity
1107 * which reporting criteria have been fulfilled, but delayed by
1108 * time-to-trigger.
1109 */
1111 {
1112 uint8_t measId; ///< The measurement identity which raised the trigger.
1113 ConcernedCells_t concernedCells; ///< The list of cells responsible for this trigger.
1114 EventId
1115 timer; ///< The pending reporting event, scheduled at the end of the time-to-trigger.
1116 };
1117
1118 /**
1119 * \brief List of triggers that were raised because entering condition have
1120 * been true, but are still delayed from reporting it by
1121 * time-to-trigger.
1122 *
1123 * The list is indexed by the measurement identity where the trigger
1124 * originates from. The enclosed event will run at the end of the
1125 * time-to-trigger and insert a *reporting entry* to #m_varMeasReportList.
1126 */
1127 std::map<uint8_t, std::list<PendingTrigger_t>> m_enteringTriggerQueue;
1128
1129 /**
1130 * \brief List of triggers that were raised because leaving condition have
1131 * been true, but are still delayed from stopping the reporting by
1132 * time-to-trigger.
1133 *
1134 * The list is indexed by the measurement identity where the trigger
1135 * originates from. The enclosed event will run at the end of the
1136 * time-to-trigger and remove the associated *reporting entry* from
1137 * #m_varMeasReportList.
1138 */
1139 std::map<uint8_t, std::list<PendingTrigger_t>> m_leavingTriggerQueue;
1140
1141 /**
1142 * \brief Clear all the waiting triggers in #m_enteringTriggerQueue which are
1143 * associated with the given measurement identity.
1144 * \param measId the measurement identity to be processed, must already exists
1145 * in #m_enteringTriggerQueue, otherwise an error would be
1146 * raised
1147 *
1148 * \note The function may conclude that there is nothing to be removed. In
1149 * this case, the function will simply ignore quietly.
1150 *
1151 * This function is used when the entering condition of the measurement
1152 * identity becomes no longer true. Therefore all the waiting triggers for
1153 * this measurement identity in #m_enteringTriggerQueue have become invalid
1154 * and must be canceled.
1155 *
1156 * \sa LteUeRrc::m_enteringTriggerQueue
1157 */
1158 void CancelEnteringTrigger(uint8_t measId);
1159
1160 /**
1161 * \brief Remove a specific cell from the waiting triggers in
1162 * #m_enteringTriggerQueue which belong to the given measurement
1163 * identity.
1164 * \param measId the measurement identity to be processed, must already exists
1165 * in #m_enteringTriggerQueue, otherwise an error would be
1166 * raised
1167 * \param cellId the cell ID to be removed from the waiting triggers
1168 *
1169 * \note The function may conclude that there is nothing to be removed. In
1170 * this case, the function will simply ignore quietly.
1171 *
1172 * This function is used when a specific neighbour cell no longer fulfills
1173 * the entering condition of the measurement identity. Thus the cell must be
1174 * removed from all the waiting triggers for this measurement identity in
1175 * #m_enteringTriggerQueue.
1176 *
1177 * \sa LteUeRrc::m_enteringTriggerQueue
1178 */
1179 void CancelEnteringTrigger(uint8_t measId, uint16_t cellId);
1180
1181 /**
1182 * \brief Clear all the waiting triggers in #m_leavingTriggerQueue which are
1183 * associated with the given measurement identity.
1184 * \param measId the measurement identity to be processed, must already exists
1185 * in #m_leavingTriggerQueue, otherwise an error would be
1186 * raised
1187 *
1188 * \note The function may conclude that there is nothing to be removed. In
1189 * this case, the function will simply ignore quietly.
1190 *
1191 * This function is used when the leaving condition of the measurement
1192 * identity becomes no longer true. Therefore all the waiting triggers for
1193 * this measurement identity in #m_leavingTriggerQueue have become invalid
1194 * and must be canceled.
1195 *
1196 * \sa LteUeRrc::m_leavingTriggerQueue
1197 */
1198 void CancelLeavingTrigger(uint8_t measId);
1199
1200 /**
1201 * \brief Remove a specific cell from the waiting triggers in
1202 * #m_leavingTriggerQueue which belong to the given measurement
1203 * identity.
1204 * \param measId the measurement identity to be processed, must already exists
1205 * in #m_leavingTriggerQueue, otherwise an error would be
1206 * raised
1207 * \param cellId the cell ID to be removed from the waiting triggers
1208 *
1209 * \note The function may conclude that there is nothing to be removed. In
1210 * this case, the function will simply ignore quietly.
1211 *
1212 * This function is used when a specific neighbour cell no longer fulfills
1213 * the leaving condition of the measurement identity. Thus the cell must be
1214 * removed from all the waiting triggers for this measurement identity in
1215 * #m_leavingTriggerQueue.
1216 *
1217 * \sa LteUeRrc::m_leavingTriggerQueue
1218 */
1219 void CancelLeavingTrigger(uint8_t measId, uint16_t cellId);
1220
1221 /**
1222 * The `T300` attribute. Timer for RRC connection establishment procedure
1223 * (i.e., the procedure is deemed as failed if it takes longer than this).
1224 * See Section 7.3 of 3GPP TS 36.331.
1225 */
1227
1228 /**
1229 * \brief Invokes ConnectionEstablishmentTimeout() if RRC connection
1230 * establishment procedure for this UE takes longer than T300.
1231 */
1233
1234 /**
1235 * \brief Invoked after timer T300 expires, notifying upper layers that RRC
1236 * connection establishment procedure has failed.
1237 */
1238 void ConnectionTimeout();
1239
1240 /**
1241 * The 'T310' attribute. After detecting N310 out-of-sync indications,
1242 * if number of in-sync indications detected is less than N311 before this
1243 * time, then the radio link is considered to have failed and the UE
1244 * transitions to state CONNECTED_PHY_PROMLEM and eventually IDLE_START
1245 * and UE context at eNodeB is destroyed. RRC connection re-establishment
1246 * is not initiated after this time. See 3GPP TS 36.331 7.3.
1247 */
1249
1250 /**
1251 * The 'N310' attribute. This specifies the maximum
1252 * consecutive out-of-sync indications from lower layers.
1253 */
1254 uint8_t m_n310;
1255
1256 /**
1257 * The 'N311' attribute. This specifies the minimum
1258 * consecutive in-sync indications from lower layers.
1259 */
1260 uint8_t m_n311;
1261
1262 /**
1263 * Time limit (given by m_t310) before the radio link is considered to have failed.
1264 * It is set upon detecting physical layer problems i.e. upon receiving
1265 * N310 consecutive out-of-sync indications from lower layers. Calling
1266 * LteUeRrc::RadioLinkFailureDetected() when it expires.
1267 * It is cancelled upon receiving N311 consecutive in-sync indications. Upon
1268 * expiry, the UE transitions to RRC_IDLE and no RRC connection
1269 * re-establishment is initiated.
1270 */
1272
1273 uint8_t m_noOfSyncIndications; ///< number of in-sync or out-of-sync indications coming from PHY
1274 ///< layer
1275
1276 bool m_leaveConnectedMode; ///< true if UE NAS ask UE RRC to leave connected mode, e.g., after
1277 ///< RLF, i.e. T310 has expired
1278
1279 uint16_t m_previousCellId; ///< the cell id of the previous cell UE was attached to
1280
1281 uint8_t m_connEstFailCountLimit; ///< the counter value for T300 timer expiration received from
1282 ///< the eNB
1283
1284 uint8_t m_connEstFailCount; ///< the counter to count T300 timer expiration
1285 /**
1286 * \brief Radio link failure detected function
1287 *
1288 * Upon detection of radio link failure, the UE is reverted
1289 * back to idle state and the UE context at eNodeB and EPC
1290 * is deleted, thus releasing the RRC connection. The eNodeB is notified
1291 * in an ideal way since there is no radio link failure detection
1292 * implemented at the eNodeB. If the deletion process is not synchronous,
1293 * then errors occur due to triggering of assert messages.
1294 */
1296
1297 /**
1298 * \brief Do notify in sync function
1299 *
1300 * Triggered upon receiving an in sync indication from UE PHY.
1301 * When the count equals N311, then T310 is cancelled.
1302 */
1303 void DoNotifyInSync();
1304
1305 /**
1306 * \brief Do notify out of sync function
1307 *
1308 * Triggered upon receiving an out of sync indication from UE PHY.
1309 * When the count equals N310, then T310 is started.
1310 */
1311 void DoNotifyOutOfSync();
1312
1313 /**
1314 * \brief Do reset sync indication counter function
1315 *
1316 * Reset the sync indication counter
1317 * if the Qin or Qout condition at PHY
1318 * is not fulfilled for the number of
1319 * consecutive frames.
1320 */
1322
1323 /**
1324 * \brief Reset radio link failure parameters
1325 *
1326 * RLF timers and counters should be rest upon:
1327 *
1328 * - If the UE received N311 in Sync indications from the UE
1329 * PHY.
1330 * - If the UE receives RRCConnectionReconfiguration including
1331 * the mobilityControlInfo (TS 36.331 sec 5.3.5.4)
1332 *
1333 * Inside this method the UE RRC also instructs the UE PHY to reset the
1334 * RLF parameters so, it can start RLF detection again.
1335 *
1336 */
1337 void ResetRlfParams();
1338
1339 public:
1340 /**
1341 * The number of component carriers.
1342 */
1344
1345}; // end of class LteUeRrc
1346
1347} // namespace ns3
1348
1349#endif // LTE_UE_RRC_H
An identifier for simulation events.
Definition: event-id.h:55
This class implements the Access Stratum (AS) Service Access Point (SAP), i.e., the interface between...
Definition: lte-as-sap.h:39
This class implements the Access Stratum (AS) Service Access Point (SAP), i.e., the interface between...
Definition: lte-as-sap.h:98
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:36
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36....
Definition: lte-pdcp-sap.h:69
LtePdcpSpecificLtePdcpSapUser class.
Definition: lte-pdcp-sap.h:129
Service Access Point (SAP) offered by the UE component carrier manager to the UE RRC.
Service Access Point (SAP) offered by the UE RRC to the UE CCM.
Service Access Point (SAP) offered by the UE MAC to the UE RRC.
Service Access Point (SAP) offered by the UE MAC to the UE RRC.
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
void DoRecvRrcConnectionReconfiguration(LteRrcSap::RrcConnectionReconfiguration msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1053
uint8_t m_lastRrcTransactionIdentifier
last RRC transaction identifier
Definition: lte-ue-rrc.h:819
bool m_connectionPending
True if a connection request by upper layers is pending.
Definition: lte-ue-rrc.h:934
bool m_hasReceivedSib1
True if SIB1 was received for the current cell.
Definition: lte-ue-rrc.h:938
void SendMeasurementReport(uint8_t measId)
Produce a proper measurement report from the given measurement identity's reporting entry in m_varMea...
Definition: lte-ue-rrc.cc:2931
std::map< uint8_t, std::list< PendingTrigger_t > > m_enteringTriggerQueue
List of triggers that were raised because entering condition have been true, but are still delayed fr...
Definition: lte-ue-rrc.h:1127
void DoCompleteSetup(LteUeRrcSapProvider::CompleteSetupParameters params)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:959
void DoNotifyOutOfSync()
Do notify out of sync function.
Definition: lte-ue-rrc.cc:3307
LteUeCcmRrcSapUser * GetLteCcmRrcSapUser()
Get the Component Carrier Management SAP offered by this RRC.
Definition: lte-ue-rrc.cc:410
void DoRecvRrcConnectionReject(LteRrcSap::RrcConnectionReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1219
uint16_t m_previousCellId
the cell id of the previous cell UE was attached to
Definition: lte-ue-rrc.h:1279
Ptr< LteSignalingRadioBearerInfo > m_srb1Old
SRB1 configuration before RRC connection reconfiguration.
Definition: lte-ue-rrc.h:806
static TypeId GetTypeId()
Get the type ID.
Definition: lte-ue-rrc.cc:181
void SwitchToState(State s)
Switch the UE RRC to the given state.
Definition: lte-ue-rrc.cc:3227
uint16_t GetRnti() const
Definition: lte-ue-rrc.cc:456
void DoDisconnect()
Disconnect function.
Definition: lte-ue-rrc.cc:611
LteMacSapProvider * m_macSapProvider
MAC SAP provider.
Definition: lte-ue-rrc.h:768
void(* ImsiCidRntiCountTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti, uint8_t count)
TracedCallback signature for imsi, cellId, rnti and counter for random access events.
Definition: lte-ue-rrc.h:409
void DoNotifyRandomAccessFailed()
Notify random access failed function.
Definition: lte-ue-rrc.cc:705
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_mibReceivedTrace
The MibReceived trace source.
Definition: lte-ue-rrc.h:834
LteUeCmacSapUser * GetLteUeCmacSapUser()
This function is overloaded to maintain backward compatibility.
Definition: lte-ue-rrc.cc:368
std::map< uint16_t, MeasValues > m_storedScellMeasValues
Internal storage of the latest measurement results from all detected detected Secondary carrier compo...
Definition: lte-ue-rrc.h:1103
void SetLteUeCmacSapProvider(LteUeCmacSapProvider *s)
set the CMAC SAP this RRC should interact with
Definition: lte-ue-rrc.cc:354
uint64_t m_imsi
The unique UE identifier.
Definition: lte-ue-rrc.h:784
uint8_t m_n311
The 'N311' attribute.
Definition: lte-ue-rrc.h:1260
Ptr< LteSignalingRadioBearerInfo > m_srb0
The Srb0 attribute.
Definition: lte-ue-rrc.h:797
uint8_t m_connEstFailCountLimit
the counter value for T300 timer expiration received from the eNB
Definition: lte-ue-rrc.h:1281
LteUeCphySapUser * GetLteUeCphySapUser()
Definition: lte-ue-rrc.cc:340
void DoConnect()
Connect function.
Definition: lte-ue-rrc.cc:807
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndErrorTrace
The HandoverEndError trace source.
Definition: lte-ue-rrc.h:902
State
The states of the UE RRC entity.
Definition: lte-ue-rrc.h:99
@ CONNECTED_REESTABLISHING
Definition: lte-ue-rrc.h:112
@ IDLE_CAMPED_NORMALLY
Definition: lte-ue-rrc.h:105
@ CONNECTED_PHY_PROBLEM
Definition: lte-ue-rrc.h:111
TracedCallback< uint64_t, uint16_t, uint16_t, State, State > m_stateTransitionTrace
The StateTransition trace source.
Definition: lte-ue-rrc.h:851
VarMeasConfig m_varMeasConfig
Includes the accumulated configuration of the measurements to be performed by the UE.
Definition: lte-ue-rrc.h:976
void ApplyMeasConfig(LteRrcSap::MeasConfig mc)
Update the current measurement configuration m_varMeasConfig.
Definition: lte-ue-rrc.cc:1631
LteRrcSap::PdschConfigDedicated m_pdschConfigDedicated
the PDSCH config dedicated
Definition: lte-ue-rrc.h:821
uint8_t m_n310
The 'N310' attribute.
Definition: lte-ue-rrc.h:1254
void SetUseRlcSm(bool val)
Definition: lte-ue-rrc.cc:525
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndErrorTrace
The InitialCellSelectionEndError trace source.
Definition: lte-ue-rrc.h:861
EventId m_radioLinkFailureDetected
Time limit (given by m_t310) before the radio link is considered to have failed.
Definition: lte-ue-rrc.h:1271
void DoRecvRrcConnectionReestablishmentReject(LteRrcSap::RrcConnectionReestablishmentReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1180
void DoNotifyRandomAccessSuccessful()
Notify random access successful function.
Definition: lte-ue-rrc.cc:661
LteUeRrcSapProvider * m_rrcSapProvider
RRC SAP provider.
Definition: lte-ue-rrc.h:766
void VarMeasReportListErase(uint8_t measId, ConcernedCells_t leavingCells, bool reportOnLeave)
Remove some cells from an existing reporting entry in m_varMeasReportList.
Definition: lte-ue-rrc.cc:2858
void DoRecvRrcConnectionSetup(LteRrcSap::RrcConnectionSetup msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1022
void CancelLeavingTrigger(uint8_t measId)
Clear all the waiting triggers in m_leavingTriggerQueue which are associated with the given measureme...
Definition: lte-ue-rrc.cc:2734
bool m_leaveConnectedMode
true if UE NAS ask UE RRC to leave connected mode, e.g., after RLF, i.e.
Definition: lte-ue-rrc.h:1276
void DoRecvRrcConnectionReestablishment(LteRrcSap::RrcConnectionReestablishment msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1157
bool m_hasReceivedSib2
True if SIB2 was received for the current cell.
Definition: lte-ue-rrc.h:940
void SynchronizeToStrongestCell()
Go through the list of measurement results, choose the one with the strongest RSRP,...
Definition: lte-ue-rrc.cc:1240
std::map< uint8_t, uint8_t > m_bid2DrbidMap
bid to DR bid map
Definition: lte-ue-rrc.h:757
void SetLteUeCphySapProvider(LteUeCphySapProvider *s)
set the CPHY SAP this RRC should use to interact with the PHY
Definition: lte-ue-rrc.cc:326
std::vector< LteUeCmacSapProvider * > m_cmacSapProvider
UE CMac SAP provider.
Definition: lte-ue-rrc.h:763
State GetState() const
Definition: lte-ue-rrc.cc:511
uint32_t m_dlEarfcn
Downlink carrier frequency.
Definition: lte-ue-rrc.h:826
LteUeCcmRrcSapProvider * m_ccmRrcSapProvider
Interface to the LteUeComponentCarrierManage instance.
Definition: lte-ue-rrc.h:777
void DoSetCsgWhiteList(uint32_t csgId)
Set CSG white list function.
Definition: lte-ue-rrc.cc:745
void ApplyRadioResourceConfigDedicatedSecondaryCarrier(LteRrcSap::NonCriticalExtensionConfiguration nonCec)
Apply radio resource config dedicated secondary carrier.
Definition: lte-ue-rrc.cc:1362
LteAsSapProvider * GetAsSapProvider()
Definition: lte-ue-rrc.cc:423
void DoSetTemporaryCellRnti(uint16_t rnti)
Set temporary cell rnti function.
Definition: lte-ue-rrc.cc:652
void SetLteMacSapProvider(LteMacSapProvider *s)
set the MAC SAP provider.
Definition: lte-ue-rrc.cc:396
TracedCallback< uint64_t, uint16_t, uint16_t > m_radioLinkFailureTrace
The 'RadioLinkFailure' trace source.
Definition: lte-ue-rrc.h:931
uint64_t GetImsi() const
Definition: lte-ue-rrc.cc:450
uint32_t m_ulEarfcn
Uplink carrier frequency.
Definition: lte-ue-rrc.h:827
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionEstablishedTrace
The ConnectionEstablished trace source.
Definition: lte-ue-rrc.h:877
friend class UeRrcMemberLteEnbCmacSapUser
allow UeRrcMemberLteEnbCmacSapUser class friend access
Definition: lte-ue-rrc.h:81
uint8_t GetDlBandwidth() const
Definition: lte-ue-rrc.cc:491
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_sib1ReceivedTrace
The Sib1Received trace source.
Definition: lte-ue-rrc.h:840
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessErrorTrace
The RandomAccessError trace source.
Definition: lte-ue-rrc.h:872
uint32_t GetDlEarfcn() const
Definition: lte-ue-rrc.cc:498
std::list< LteRrcSap::SCellToAddMod > m_sCellToAddModList
Secondary carriers.
Definition: lte-ue-rrc.h:828
LtePdcpSapUser * m_drbPdcpSapUser
DRB PDCP SAP user.
Definition: lte-ue-rrc.h:769
TracedCallback< Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod > > m_sCarrierConfiguredTrace
The SCarrierConfigured trace source.
Definition: lte-ue-rrc.h:908
void DoStartCellSelection(uint32_t dlEarfcn)
Start cell selection function.
Definition: lte-ue-rrc.cc:752
bool m_useRlcSm
True if RLC SM is to be used, false if RLC UM/AM are to be used.
Definition: lte-ue-rrc.h:817
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
The HandoverEndOk trace source.
Definition: lte-ue-rrc.h:897
TracedCallback< uint64_t, uint16_t, uint16_t, std::string, uint8_t > m_phySyncDetectionTrace
The 'PhySyncDetection' trace source.
Definition: lte-ue-rrc.h:926
std::map< uint8_t, std::list< PendingTrigger_t > > m_leavingTriggerQueue
List of triggers that were raised because leaving condition have been true, but are still delayed fro...
Definition: lte-ue-rrc.h:1139
void(* PhySyncDetectionTracedCallback)(uint64_t imsi, uint16_t rnti, uint16_t cellId, std::string type, uint16_t count)
TracedCallback signature for in-sync and out-of-sync detection events.
Definition: lte-ue-rrc.h:394
Time m_t310
The 'T310' attribute.
Definition: lte-ue-rrc.h:1248
void RadioLinkFailureDetected()
Radio link failure detected function.
Definition: lte-ue-rrc.cc:3284
State m_state
The current UE RRC state.
Definition: lte-ue-rrc.h:781
std::vector< LteUeCphySapProvider * > m_cphySapProvider
UE CPhy SAP provider.
Definition: lte-ue-rrc.h:760
LteUeCcmRrcSapUser * m_ccmRrcSapUser
CCM RRC SAP user.
Definition: lte-ue-rrc.h:778
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_drbCreatedTrace
The DrbCreated trace source.
Definition: lte-ue-rrc.h:920
uint16_t m_numberOfComponentCarriers
The number of component carriers.
Definition: lte-ue-rrc.h:1343
std::map< uint8_t, VarMeasReport > m_varMeasReportList
The list of active reporting entries, indexed by the measurement identity which triggered the reporti...
Definition: lte-ue-rrc.h:998
std::vector< LteUeCmacSapUser * > m_cmacSapUser
UE CMac SAP user.
Definition: lte-ue-rrc.h:762
TracedCallback< uint64_t, uint16_t, uint16_t > m_srb1CreatedTrace
The Srb1Created trace source.
Definition: lte-ue-rrc.h:914
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndOkTrace
The InitialCellSelectionEndOk trace source.
Definition: lte-ue-rrc.h:856
uint8_t GetUlBandwidth() const
Definition: lte-ue-rrc.cc:484
void DoSendData(Ptr< Packet > packet, uint8_t bid)
Send data function.
Definition: lte-ue-rrc.cc:587
void(* MibSibHandoverTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t otherCid)
TracedCallback signature for MIBReceived, Sib1Received and HandoverStart events.
Definition: lte-ue-rrc.h:355
LteAsSapProvider * m_asSapProvider
AS SAP provider.
Definition: lte-ue-rrc.h:771
uint16_t m_rnti
The C-RNTI attribute.
Definition: lte-ue-rrc.h:788
uint8_t m_noOfSyncIndications
number of in-sync or out-of-sync indications coming from PHY layer
Definition: lte-ue-rrc.h:1273
uint16_t GetCellId() const
Definition: lte-ue-rrc.cc:463
void DoSetNumberOfComponentCarriers(uint16_t noOfComponentCarriers)
RRC CCM SAP USER Method.
Definition: lte-ue-rrc.cc:1233
~LteUeRrc() override
Destructor.
Definition: lte-ue-rrc.cc:153
void CancelEnteringTrigger(uint8_t measId)
Clear all the waiting triggers in m_enteringTriggerQueue which are associated with the given measurem...
Definition: lte-ue-rrc.cc:2677
std::map< uint16_t, MeasValues > m_storedMeasValues
Internal storage of the latest measurement results from all detected detected cells,...
Definition: lte-ue-rrc.h:1080
void DoReportUeMeasurements(LteUeCphySapUser::UeMeasurementsParameters params)
Report UE measurements function.
Definition: lte-ue-rrc.cc:913
LteUeRrcSapUser * m_rrcSapUser
RRC SAP user.
Definition: lte-ue-rrc.h:765
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
The ConnectionReconfiguration trace source.
Definition: lte-ue-rrc.h:887
void MeasurementReportTriggering(uint8_t measId)
Evaluate the reporting criteria of a measurement identity and invoke some reporting actions based on ...
Definition: lte-ue-rrc.cc:1911
void SaveUeMeasurements(uint16_t cellId, double rsrp, double rsrq, bool useLayer3Filtering, uint8_t componentCarrierId)
Keep the given measurement result as the latest measurement figures, to be utilised by UE RRC functio...
Definition: lte-ue-rrc.cc:1853
void SetLteCcmRrcSapProvider(LteUeCcmRrcSapProvider *s)
set the Component Carrier Management SAP this RRC should interact with
Definition: lte-ue-rrc.cc:403
TracedCallback< uint64_t, uint16_t, uint16_t > m_sib2ReceivedTrace
The Sib2Received trace source.
Definition: lte-ue-rrc.h:845
void LeaveConnectedMode()
Leave connected mode method Resets the UE back to an appropriate state depending on the nature of cau...
Definition: lte-ue-rrc.cc:3131
uint32_t GetUlEarfcn() const
Definition: lte-ue-rrc.cc:504
void VarMeasReportListClear(uint8_t measId)
Remove the reporting entry of the given measurement identity from m_varMeasReportList.
Definition: lte-ue-rrc.cc:2913
LteUeRrcSapProvider * GetLteUeRrcSapProvider()
Definition: lte-ue-rrc.cc:389
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
The DataRadioBearerMap attribute.
Definition: lte-ue-rrc.h:811
uint16_t m_cellId
The CellId attribute.
Definition: lte-ue-rrc.h:792
uint8_t m_connEstFailCount
the counter to count T300 timer expiration
Definition: lte-ue-rrc.h:1284
void DoRecvMasterInformationBlock(uint16_t cellId, LteRrcSap::MasterInformationBlock msg)
Receive master information block function.
Definition: lte-ue-rrc.cc:847
void DoReceivePdcpSdu(LtePdcpSapUser::ReceivePdcpSduParameters params)
Receive PDCP SDU function.
Definition: lte-ue-rrc.cc:645
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_connectionTimeoutTrace
The ConnectionTimeout trace source.
Definition: lte-ue-rrc.h:882
std::set< uint16_t > m_acceptableCell
List of cell ID of acceptable cells for cell selection that have been detected.
Definition: lte-ue-rrc.h:946
Time m_t300
The T300 attribute.
Definition: lte-ue-rrc.h:1226
EventId m_connectionTimeout
Invokes ConnectionEstablishmentTimeout() if RRC connection establishment procedure for this UE takes ...
Definition: lte-ue-rrc.h:1232
void VarMeasReportListAdd(uint8_t measId, ConcernedCells_t enteringCells)
Compose a new reporting entry of the given measurement identity, insert it into m_varMeasReportList,...
Definition: lte-ue-rrc.cc:2791
std::vector< LteUeCphySapUser * > m_cphySapUser
UE CPhy SAP user.
Definition: lte-ue-rrc.h:759
void ConnectionTimeout()
Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure ...
Definition: lte-ue-rrc.cc:3174
bool m_hasReceivedMib
True if MIB was received for the current cell.
Definition: lte-ue-rrc.h:936
void DoRecvRrcConnectionRelease(LteRrcSap::RrcConnectionRelease msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1202
std::list< uint16_t > ConcernedCells_t
List of cell IDs which are responsible for a certain trigger.
Definition: lte-ue-rrc.h:1003
void EvaluateCellForSelection()
Performs cell selection evaluation to the current serving cell.
Definition: lte-ue-rrc.cc:1281
void(* CellSelectionTracedCallback)(uint64_t imsi, uint16_t cellId)
TracedCallback signature for imsi, cellId and rnti events.
Definition: lte-ue-rrc.h:335
void DoRecvSystemInformationBlockType1(uint16_t cellId, LteRrcSap::SystemInformationBlockType1 msg)
Receive system information block type 1 function.
Definition: lte-ue-rrc.cc:873
void StartConnection()
Start connection function.
Definition: lte-ue-rrc.cc:3120
void DoRecvSystemInformation(LteRrcSap::SystemInformation msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:970
void DoNotifyInSync()
Do notify in sync function.
Definition: lte-ue-rrc.cc:3294
uint16_t m_ulBandwidth
Uplink bandwidth in RBs.
Definition: lte-ue-rrc.h:824
LteUeRrc()
create an RRC instance for use within an ue
Definition: lte-ue-rrc.cc:119
uint32_t m_csgWhiteList
List of CSG ID which this UE entity has access to.
Definition: lte-ue-rrc.h:949
uint16_t GetPreviousCellId() const
Get the previous cell id.
Definition: lte-ue-rrc.cc:518
void(* ImsiCidRntiTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti)
TracedCallback signature for imsi, cellId and rnti events.
Definition: lte-ue-rrc.h:344
void InitializeSap()
Initialize SAP.
Definition: lte-ue-rrc.cc:564
void DisposeOldSrb1()
Dispose old SRB1.
Definition: lte-ue-rrc.cc:3205
void DoInitialize() override
Initialize() implementation.
Definition: lte-ue-rrc.cc:532
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessSuccessfulTrace
The RandomAccessSuccessful trace source.
Definition: lte-ue-rrc.h:867
bool IsServingCell(uint16_t cellId) const
Definition: lte-ue-rrc.cc:470
LteRrcSap::SystemInformationBlockType1 m_lastSib1
Stored content of the last SIB1 received.
Definition: lte-ue-rrc.h:943
void(* StateTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti, State oldState, State newState)
TracedCallback signature for state transition events.
Definition: lte-ue-rrc.h:369
static const std::string ToString(LteUeRrc::State s)
Definition: lte-ue-rrc.cc:3347
void(* SCarrierConfiguredTracedCallback)(Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod >)
TracedCallback signature for secondary carrier configuration events.
Definition: lte-ue-rrc.h:381
std::map< uint16_t, std::map< uint8_t, MeasValues > > m_storedMeasValuesPerCarrier
Stored measure values per carrier.
Definition: lte-ue-rrc.h:1085
void SetAsSapUser(LteAsSapUser *s)
Set the AS SAP user to interact with the NAS entity.
Definition: lte-ue-rrc.cc:417
void SetLteUeRrcSapUser(LteUeRrcSapUser *s)
set the RRC SAP this RRC should interact with
Definition: lte-ue-rrc.cc:382
uint16_t m_dlBandwidth
Downlink bandwidth in RBs.
Definition: lte-ue-rrc.h:823
Ptr< LteSignalingRadioBearerInfo > m_srb1
The Srb1 attribute.
Definition: lte-ue-rrc.h:801
LteAsSapUser * m_asSapUser
AS SAP user.
Definition: lte-ue-rrc.h:772
void SetImsi(uint64_t imsi)
Definition: lte-ue-rrc.cc:429
void DoForceCampedOnEnb(uint16_t cellId, uint32_t dlEarfcn)
Force camped on ENB function.
Definition: lte-ue-rrc.cc:763
void DoDispose() override
Destructor implementation.
Definition: lte-ue-rrc.cc:159
void StorePreviousCellId(uint16_t cellId)
Store the previous cell id.
Definition: lte-ue-rrc.cc:443
void ResetRlfParams()
Reset radio link failure parameters.
Definition: lte-ue-rrc.cc:3338
void DoResetSyncIndicationCounter()
Do reset sync indication counter function.
Definition: lte-ue-rrc.cc:3328
void ApplyRadioResourceConfigDedicated(LteRrcSap::RadioResourceConfigDedicated rrcd)
Apply radio resource config dedicated.
Definition: lte-ue-rrc.cc:1413
uint8_t Bid2Drbid(uint8_t bid)
Bid 2 DR bid.
Definition: lte-ue-rrc.cc:3212
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
The HandoverStart trace source.
Definition: lte-ue-rrc.h:892
Part of the RRC protocol.
Definition: lte-rrc-sap.h:1045
Part of the RRC protocol.
Definition: lte-rrc-sap.h:960
Template for the implementation of the LteAsSapProvider as a member of an owner class of type C to wh...
Definition: lte-as-sap.h:131
MemberLteUeCcmRrcSapUser class.
Template for the implementation of the LteUeCphySapUser as a member of an owner class of type C to wh...
Template for the implementation of the LteUeRrcSapProvider as a member of an owner class of type C to...
Definition: lte-rrc-sap.h:1443
A base class which provides memory management and object aggregation.
Definition: object.h:89
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
Forward calls to a chain of Callback.
a unique identifier for an interface.
Definition: type-id.h:59
UeMemberLteUeCmacSapUser class.
Definition: lte-ue-rrc.cc:56
void(* Time)(Time oldValue, Time newValue)
TracedValue callback signature for Time.
Definition: nstime.h:839
Every class exported by the ns3 library is enclosed in the ns3 namespace.
const Time UE_MEASUREMENT_REPORT_DELAY
Artificial delay of UE measurements procedure.
Definition: lte-ue-rrc.cc:46
Parameters for LtePdcpSapUser::ReceivePdcpSdu.
Definition: lte-pdcp-sap.h:77
MasterInformationBlock structure.
Definition: lte-rrc-sap.h:622
MeasConfig structure.
Definition: lte-rrc-sap.h:553
NonCriticalExtensionConfiguration structure.
Definition: lte-rrc-sap.h:874
PdschConfigDedicated structure.
Definition: lte-rrc-sap.h:163
QuantityConfig structure.
Definition: lte-rrc-sap.h:306
RadioResourceConfigDedicated structure.
Definition: lte-rrc-sap.h:296
RrcConnectionReconfiguration structure.
Definition: lte-rrc-sap.h:881
RrcConnectionReestablishment structure.
Definition: lte-rrc-sap.h:911
RrcConnectionReestablishmentReject structure.
Definition: lte-rrc-sap.h:925
RrcConnectionReject structure.
Definition: lte-rrc-sap.h:936
RrcConnectionRelease structure.
Definition: lte-rrc-sap.h:930
RrcConnectionSetup structure.
Definition: lte-rrc-sap.h:736
SystemInformationBlockType1 structure.
Definition: lte-rrc-sap.h:629
SystemInformation structure.
Definition: lte-rrc-sap.h:643
UeMeasurementsParameters structure.
Represents a measurement result from a certain cell.
Definition: lte-ue-rrc.h:1061
uint32_t carrierFreq
Measurement object frequency.
Definition: lte-ue-rrc.h:1064
double rsrp
Measured RSRP in dBm.
Definition: lte-ue-rrc.h:1062
double rsrq
Measured RSRQ in dB.
Definition: lte-ue-rrc.h:1063
Represents a single triggered event from a measurement identity which reporting criteria have been fu...
Definition: lte-ue-rrc.h:1111
ConcernedCells_t concernedCells
The list of cells responsible for this trigger.
Definition: lte-ue-rrc.h:1113
EventId timer
The pending reporting event, scheduled at the end of the time-to-trigger.
Definition: lte-ue-rrc.h:1115
uint8_t measId
The measurement identity which raised the trigger.
Definition: lte-ue-rrc.h:1112
Includes the accumulated configuration of the measurements to be performed by the UE.
Definition: lte-ue-rrc.h:961
std::map< uint8_t, LteRrcSap::ReportConfigToAddMod > reportConfigList
report config list
Definition: lte-ue-rrc.h:964
LteRrcSap::QuantityConfig quantityConfig
quantity config
Definition: lte-ue-rrc.h:965
std::map< uint8_t, LteRrcSap::MeasObjectToAddMod > measObjectList
measure object list
Definition: lte-ue-rrc.h:963
std::map< uint8_t, LteRrcSap::MeasIdToAddMod > measIdList
measure ID list
Definition: lte-ue-rrc.h:962
Represents a single measurement reporting entry., which includes information about a measurement for ...
Definition: lte-ue-rrc.h:986
uint32_t numberOfReportsSent
number of reports sent
Definition: lte-ue-rrc.h:989
std::set< uint16_t > cellsTriggeredList
note: only E-UTRA is supported.
Definition: lte-ue-rrc.h:988
EventId periodicReportTimer
periodic report timer
Definition: lte-ue-rrc.h:990
uint8_t measId
measure ID
Definition: lte-ue-rrc.h:987
CompleteSetupParameters structure.
Definition: lte-rrc-sap.h:1049