A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-rrc-sap.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Authors: Nicola Baldo <nbaldo@cttc.es>
7 * Lluis Parcerisa <lparcerisa@cttc.cat>
8 */
9
10#ifndef LTE_RRC_SAP_H
11#define LTE_RRC_SAP_H
12
13#include <ns3/ptr.h>
14#include <ns3/simulator.h>
15
16#include <list>
17#include <stdint.h>
18
19namespace ns3
20{
21
22class LteRlcSapUser;
23class LtePdcpSapUser;
24class LteRlcSapProvider;
25class LtePdcpSapProvider;
26class Packet;
27
28/**
29 * @ingroup lte
30 *
31 * @brief Class holding definition common to all UE/eNodeB SAP Users/Providers.
32 *
33 * See 3GPP TS 36.331 for reference.
34 *
35 * Note that only those values that are (expected to be) used by the
36 * ns-3 model are mentioned here. The naming of the variables that are
37 * defined here is the same of 36.331, except for removal of "-" and
38 * conversion to CamelCase or ALL_CAPS where needed in order to follow
39 * the ns-3 coding style. Due to the 1-to-1 mapping with TS 36.331,
40 * detailed doxygen documentation is omitted, so please refer to
41 * 36.331 for the meaning of these data structures / fields.
42 */
44{
45 public:
46 virtual ~LteRrcSap();
47
48 /// Constraint values
49 static const uint8_t MaxReportCells = 8;
50
51 // Information Elements
52 /// PlmnIdentityInfo structure
54 {
55 uint32_t plmnIdentity; ///< PLMN identity
56 };
57
58 /// CellAccessRelatedInfo structure
60 {
61 PlmnIdentityInfo plmnIdentityInfo; ///< PLMN identity info
62 uint32_t cellIdentity; ///< cell identity
63 bool csgIndication; ///< CSG indication
64 uint32_t csgIdentity; ///< CSG identity
65 };
66
67 /// CellSelectionInfo structure
69 {
70 int8_t qRxLevMin; ///< INTEGER (-70..-22), actual value = IE value * 2 [dBm].
71 int8_t qQualMin; ///< INTEGER (-34..-3), actual value = IE value [dB].
72 };
73
74 /// FreqInfo structure
75 struct FreqInfo
76 {
77 uint32_t ulCarrierFreq; ///< UL carrier frequency
78 uint16_t ulBandwidth; ///< UL bandwidth
79 };
80
81 /// RlcConfig structure
82 struct RlcConfig
83 {
84 /// the direction choice
92
93 Direction choice; ///< direction choice
94 };
95
96 /// LogicalChannelConfig structure
98 {
99 uint8_t priority; ///< priority
100 uint16_t prioritizedBitRateKbps; ///< prioritized bit rate Kbps
101 uint16_t bucketSizeDurationMs; ///< bucket size duration ms
102 uint8_t logicalChannelGroup; ///< logical channel group
103 };
104
105 /// SoundingRsUlConfigCommon structure
107 {
108 /// the config action
110 {
112 RESET
113 };
114
115 Action type; ///< action type
116
117 uint16_t srsBandwidthConfig; ///< SRS bandwidth config
118 uint8_t srsSubframeConfig; ///< SRS subframe config
119 };
120
121 /// SoundingRsUlConfigDedicated structure
123 {
124 /// the config action
126 {
128 RESET
129 };
130
131 Action type; ///< action type
132
133 uint16_t srsBandwidth; ///< SRS bandwidth
134 uint16_t srsConfigIndex; ///< SRS config index
135 };
136
137 /// AntennaInfoDedicated structure
139 {
140 uint8_t transmissionMode; ///< transmission mode
141 };
142
143 /// PdschConfigCommon structure
145 {
146 int8_t referenceSignalPower; ///< INTEGER (-60..50),
147 int8_t pb; ///< INTEGER (0..3),
148 };
149
150 /// PdschConfigDedicated structure
152 {
153 /**
154 * P_A values, TS 36.331 6.3.2 PDSCH-Config
155 * ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77, dB0, dB1, dB2, dB3 }
156 */
168
169 uint8_t pa; ///< P_A value
170 };
171
172 /**
173 * Convert PDSCH config dedicated function
174 *
175 * @param pdschConfigDedicated PdschConfigDedicated
176 * @returns double value
177 */
179 {
180 double pa = 0;
181 switch (pdschConfigDedicated.pa)
182 {
184 pa = -6;
185 break;
187 pa = -4.77;
188 break;
190 pa = -3;
191 break;
193 pa = -1.77;
194 break;
196 pa = 0;
197 break;
199 pa = 1;
200 break;
202 pa = 2;
203 break;
205 pa = 3;
206 break;
207 default:
208 break;
209 }
210 return pa;
211 }
212
213 /// PhysicalConfigDedicated structure
215 {
216 bool haveSoundingRsUlConfigDedicated; ///< have sounding RS UL config dedicated?
218 soundingRsUlConfigDedicated; ///< sounding RS UL config dedicated
219 bool haveAntennaInfoDedicated; ///< have antenna info dedicated?
221 bool havePdschConfigDedicated; ///< have PDSCH config dedicated?
222 PdschConfigDedicated pdschConfigDedicated; ///< PDSCH config dedicated
223 };
224
225 /// SrbToAddMod structure
227 {
228 uint8_t srbIdentity; ///< SB identity
229 LogicalChannelConfig logicalChannelConfig; ///< logical channel config
230 };
231
232 /// DrbToAddMod structure
234 {
235 uint8_t epsBearerIdentity; ///< EPS bearer identity
236 uint8_t drbIdentity; ///< DRB identity
237 RlcConfig rlcConfig; ///< RLC config
238 uint8_t logicalChannelIdentity; ///< logical channel identify
239 LogicalChannelConfig logicalChannelConfig; ///< logical channel config
240 };
241
242 /// PreambleInfo structure
244 {
245 uint8_t numberOfRaPreambles; ///< number of RA preambles
246 };
247
248 /// RaSupervisionInfo structure
250 {
251 uint8_t preambleTransMax; ///< preamble transmit maximum
252 uint8_t raResponseWindowSize; ///< RA response window size
253 };
254
255 /// TxFailParams structure
257 {
259 0}; ///< Number of times that the UE detects T300 expiry on the same cell
260 };
261
262 /// RachConfigCommon structure
264 {
265 PreambleInfo preambleInfo; ///< preamble info
266 RaSupervisionInfo raSupervisionInfo; ///< RA supervision info
267 TxFailParam txFailParam; ///< txFailParams
268 };
269
270 /// RadioResourceConfigCommon structure
272 {
273 RachConfigCommon rachConfigCommon; ///< RACH config common
274 };
275
276 /// RadioResourceConfigCommonSib structure
278 {
279 RachConfigCommon rachConfigCommon; ///< RACH config common
280 PdschConfigCommon pdschConfigCommon; ///< PDSCH config common
281 };
282
283 /// RadioResourceConfigDedicated structure
285 {
286 std::list<SrbToAddMod> srbToAddModList; ///< SRB to add mod list
287 std::list<DrbToAddMod> drbToAddModList; ///< DRB to add mod list
288 std::list<uint8_t> drbToReleaseList; ///< DRB to release list
289 bool havePhysicalConfigDedicated; ///< have physical config dedicated?
290 PhysicalConfigDedicated physicalConfigDedicated; ///< physical config dedicated
291 };
292
293 /// QuantityConfig structure
295 {
296 uint8_t filterCoefficientRSRP; ///< filter coefficient RSRP
297 uint8_t filterCoefficientRSRQ; ///< filter coefficient RSRQ
298 };
299
300 /// CellsToAddMod structure
302 {
303 uint8_t cellIndex; ///< cell index
304 uint16_t physCellId; ///< Phy cell ID
305 int8_t cellIndividualOffset; ///< cell individual offset
306 };
307
308 /// PhysCellIdRange structure
310 {
311 uint16_t start; ///< starting cell ID
312 bool haveRange; ///< has a range?
313 uint16_t range; ///< the range
314 };
315
316 /// BlackCellsToAddMod structure
318 {
319 uint8_t cellIndex; ///< cell index
320 PhysCellIdRange physCellIdRange; ///< Phy cell ID range
321 };
322
323 /// MeasObjectEutra structure
325 {
326 uint32_t carrierFreq; ///< carrier frequency
327 uint16_t allowedMeasBandwidth; ///< allowed measure bandwidth
328 bool presenceAntennaPort1; ///< antenna port 1 present?
329 uint8_t neighCellConfig; ///< neighbor cell config
330 int8_t offsetFreq; ///< offset frequency
331 std::list<uint8_t> cellsToRemoveList; ///< cells to remove list
332 std::list<CellsToAddMod> cellsToAddModList; ///< cells to add mod list
333 std::list<uint8_t> blackCellsToRemoveList; ///< black cells to remove list
334 std::list<BlackCellsToAddMod> blackCellsToAddModList; ///< black cells to add mod list
335 bool haveCellForWhichToReportCGI; ///< have cell for which to report CGI?
336 uint16_t cellForWhichToReportCGI; ///< cell for which to report CGI
337 };
338
339 /**
340 * @brief Threshold for event evaluation.
341 *
342 * For RSRP-based threshold, the actual value is (value - 140) dBm. While for
343 * RSRQ-based threshold, the actual value is (value - 40) / 2 dB. This is in
344 * accordance with section 9.1.4 and 9.1.7 of 3GPP TS 36.133.
345 *
346 * \sa ns3::EutranMeasurementMapping
347 */
349 {
350 /// Threshold enumeration
351 enum
352 {
353 THRESHOLD_RSRP, ///< RSRP is used for the threshold.
354 THRESHOLD_RSRQ ///< RSRQ is used for the threshold.
356
357 uint8_t range; ///< Value range used in RSRP/RSRQ threshold.
358 };
359
360 /// Specifies criteria for triggering of an E-UTRA measurement reporting event.
362 {
363 /// Trigger enumeration
364 enum
365 {
366 EVENT, ///< event report
367 PERIODICAL ///< periodical report
368 } triggerType; ///< trigger type
369
370 /// Event enumeration
371 enum
372 {
373 EVENT_A1, ///< Event A1: Serving becomes better than absolute threshold.
374 EVENT_A2, ///< Event A2: Serving becomes worse than absolute threshold.
375 EVENT_A3, ///< Event A3: Neighbour becomes amount of offset better than PCell.
376 EVENT_A4, ///< Event A4: Neighbour becomes better than absolute threshold.
377 EVENT_A5 ///< Event A5: PCell becomes worse than absolute `threshold1` AND Neighbour
378 ///< becomes better than another absolute `threshold2`.
379
380 } eventId; ///< Choice of E-UTRA event triggered reporting criteria.
381
382 ThresholdEutra threshold1; ///< Threshold for event A1, A2, A4, and A5.
383 ThresholdEutra threshold2; ///< Threshold for event A5.
384
385 /// Indicates whether or not the UE shall initiate the measurement reporting procedure when
386 /// the leaving condition is met for a cell in `cellsTriggeredList`, as specified in 5.5.4.1
387 /// of 3GPP TS 36.331.
389
390 /// Offset value for Event A3. An integer between -30 and 30. The actual value is (value *
391 /// 0.5) dB.
393
394 /// Parameter used within the entry and leave condition of an event triggered reporting
395 /// condition. The actual value is (value * 0.5) dB.
396 uint8_t hysteresis;
397
398 /// Time during which specific criteria for the event needs to be met in order to trigger a
399 /// measurement report.
401
402 /// the report purpose
408
409 Report purpose; ///< purpose
410
411 /// Trigger type enumeration
412 enum
413 {
414 RSRP, ///< Reference Signal Received Power
415 RSRQ ///< Reference Signal Received Quality
416 } triggerQuantity; ///< The quantities used to evaluate the triggering condition for the
417 ///< event, see 3GPP TS 36.214.
418
419 /// Report type enumeration
420 enum
421 {
423 BOTH ///< Both the RSRP and RSRQ quantities are to be included in the measurement
424 ///< report.
425 } reportQuantity; ///< The quantities to be included in the measurement report, always
426 ///< assumed to be BOTH.
427
428 /// Maximum number of cells, excluding the serving cell, to be included in the measurement
429 /// report.
431
432 /// Report interval enumeration
433 enum
434 {
450 SPARE1
451 } reportInterval; ///< Indicates the interval between periodical reports.
452
453 /// Number of measurement reports applicable, always assumed to be infinite.
455
456 /// Report config eutra function
458
459 }; // end of struct ReportConfigEutra
460
461 /// MeasObjectToAddMod structure
463 {
464 uint8_t measObjectId; ///< measure object ID
465 MeasObjectEutra measObjectEutra; ///< measure object eutra
466 };
467
468 /// ReportConfigToAddMod structure
470 {
471 uint8_t reportConfigId; ///< report config ID
472 ReportConfigEutra reportConfigEutra; ///< report config eutra
473 };
474
475 /// MeasIdToAddMod structure
477 {
478 uint8_t measId; ///< measure ID
479 uint8_t measObjectId; ///< measure object ID
480 uint8_t reportConfigId; ///< report config ID
481 };
482
483 /// MeasGapConfig structure
485 {
486 /// the action type
488 {
490 RESET
491 };
492
493 Action type; ///< action type
494
495 /// the gap offset
496 enum Gap
497 {
499 GP1
500 };
501
502 Gap gapOffsetChoice; ///< gap offset
503
504 uint8_t gapOffsetValue; ///< gap offset value
505 };
506
507 /// MobilityStateParameters structure
509 {
510 uint8_t tEvaluation; ///< evaluation
511 uint8_t tHystNormal; ///< hyst normal
512 uint8_t nCellChangeMedium; ///< cell change medium
513 uint8_t nCellChangeHigh; ///< cell change high
514 };
515
516 /// SpeedStateScaleFactors structure
518 {
519 // 25 = oDot25, 50 = oDot5, 75 = oDot75, 100 = lDot0
520 uint8_t sfMedium; ///< scale factor medium
521 uint8_t sfHigh; ///< scale factor high
522 };
523
524 /// SpeedStatePars structure
526 {
527 /// the action type
529 {
531 RESET
532 };
533
534 Action type; ///< action type
535
536 MobilityStateParameters mobilityStateParameters; ///< mobility state parameters
537 SpeedStateScaleFactors timeToTriggerSf; ///< time to trigger scale factors
538 };
539
540 /// MeasConfig structure
542 {
543 std::list<uint8_t> measObjectToRemoveList; ///< measure object to remove list
544 std::list<MeasObjectToAddMod> measObjectToAddModList; ///< measure object to add mod list
545 std::list<uint8_t> reportConfigToRemoveList; ///< report config to remove list
546 std::list<ReportConfigToAddMod> reportConfigToAddModList; ///< report config to add mod list
547 std::list<uint8_t> measIdToRemoveList; ///< measure ID to remove list
548 std::list<MeasIdToAddMod> measIdToAddModList; ///< measure ID to add mod list
549 bool haveQuantityConfig; ///< have quantity config?
550 QuantityConfig quantityConfig; ///< quantity config
551 bool haveMeasGapConfig; ///< have measure gap config?
552 MeasGapConfig measGapConfig; ///< measure gap config
553 bool haveSmeasure; ///< have S measure?
554 uint8_t sMeasure; ///< S measure
555 bool haveSpeedStatePars; ///< have speed state parameters?
556 SpeedStatePars speedStatePars; ///< speed state parameters
557 };
558
559 /// CarrierFreqEutra structure
561 {
562 uint32_t dlCarrierFreq; ///< DL carrier frequency
563 uint32_t ulCarrierFreq; ///< UL carrier frequency
564 };
565
566 /// CarrierBandwidthEutra structure
568 {
569 uint16_t dlBandwidth; ///< DL bandwidth
570 uint16_t ulBandwidth; ///< UL bandwidth
571 };
572
573 /// RachConfigDedicated structure
575 {
576 uint8_t raPreambleIndex; ///< RA preamble index
577 uint8_t raPrachMaskIndex; ///< RA PRACH mask index
578 };
579
580 /// MobilityControlInfo structure
582 {
583 uint16_t targetPhysCellId; ///< target Phy cell ID
584 bool haveCarrierFreq; ///< have carrier frequency?
585 CarrierFreqEutra carrierFreq; ///< carrier frequency
586 bool haveCarrierBandwidth; ///< have carrier bandwidth?
588 uint16_t newUeIdentity; ///< new UE identity
589 RadioResourceConfigCommon radioResourceConfigCommon; ///< radio resource config common
590 bool haveRachConfigDedicated; ///< Have RACH config dedicated?
591 RachConfigDedicated rachConfigDedicated; ///< RACH config dedicated
592 };
593
594 /// ReestabUeIdentity structure
596 {
597 uint16_t cRnti; ///< RNTI
598 uint16_t physCellId; ///< Phy cell ID
599 };
600
601 /// ReestablishmentCause enumeration
608
609 /// MasterInformationBlock structure
611 {
612 uint16_t dlBandwidth; ///< DL bandwidth
613 uint16_t systemFrameNumber; ///< system frame number
614 };
615
616 /// SystemInformationBlockType1 structure
618 {
619 CellAccessRelatedInfo cellAccessRelatedInfo; ///< cell access related info
620 CellSelectionInfo cellSelectionInfo; ///< cell selection info
621 };
622
623 /// SystemInformationBlockType2 structure
625 {
627 FreqInfo freqInfo; ///< frequency info
628 };
629
630 /// SystemInformation structure
632 {
633 bool haveSib2; ///< have SIB2?
635 };
636
637 /// AsConfig structure
638 struct AsConfig
639 {
640 MeasConfig sourceMeasConfig; ///< source measure config
642 uint16_t sourceUeIdentity; ///< source UE identity
643 MasterInformationBlock sourceMasterInformationBlock; ///< source master information block
645 sourceSystemInformationBlockType1; ///< source system information block type 1
647 sourceSystemInformationBlockType2; ///< source system information block type 2
648 uint32_t sourceDlCarrierFreq; ///< source DL carrier frequency
649 };
650
651 /// CgiInfo structure
652 struct CgiInfo
653 {
654 uint32_t plmnIdentity; ///< PLMN identity
655 uint32_t cellIdentity; ///< cell identity
656 uint16_t trackingAreaCode; ///< tracking area code
657 std::list<uint32_t> plmnIdentityList; ///< PLMN identity list
658 };
659
660 /// MeasResultPCell structure
662 {
663 uint8_t rsrpResult; ///< the RSRP result
664 uint8_t rsrqResult; ///< the RSRQ result
665 };
666
667 /// MeasResultEutra structure
669 {
670 uint16_t physCellId; ///< Phy cell ID
671 bool haveCgiInfo; ///< have CGI info?
672 CgiInfo cgiInfo; ///< CGI info
673 bool haveRsrpResult; ///< have RSRP result
674 uint8_t rsrpResult; ///< RSRP result
675 bool haveRsrqResult; ///< have RSRQ result?
676 uint8_t rsrqResult; ///< RSRQ result
677 };
678
679 /// MeasResultSCell structure
681 {
682 uint8_t rsrpResult; ///< the RSRP result
683 uint8_t rsrqResult; ///< the RSRQ result
684 };
685
686 /// MeasResultBestNeighCell structure
688 {
689 uint16_t physCellId; ///< physical cell ID
690 uint8_t rsrpResult; ///< the RSRP result
691 uint8_t rsrqResult; ///< the RSRQ result
692 };
693
694 /// MeasResultServFreq structure
696 {
697 uint16_t servFreqId; ///< serving cell index
698 bool haveMeasResultSCell; ///< have measResultSCell?
699 MeasResultSCell measResultSCell; ///< SCell measurement results
700 bool haveMeasResultBestNeighCell; ///< have measResultBestNeighCell?
701 MeasResultBestNeighCell measResultBestNeighCell; ///< best neighbor cell measurement results
702 };
703
704 /// MeasResults structure
706 {
707 uint8_t measId; ///< measure ID
708 MeasResultPCell measResultPCell; ///< measurement result primary cell
709 bool haveMeasResultNeighCells; ///< have measure result neighbor cells
710 std::list<MeasResultEutra> measResultListEutra; ///< measure result list eutra
711 bool haveMeasResultServFreqList; ///< has measResultServFreqList-r10
712 std::list<MeasResultServFreq> measResultServFreqList; ///< MeasResultServFreqList-r10
713 };
714
715 // Messages
716
717 /// RrcConnectionRequest structure
719 {
720 uint64_t ueIdentity; ///< UE identity
721 };
722
723 /// RrcConnectionSetup structure
725 {
726 uint8_t rrcTransactionIdentifier; ///< RRC transaction identifier
728 radioResourceConfigDedicated; ///< radio resource config dedicated
729 };
730
731 /// RrcConnectionSetupCompleted structure
733 {
734 uint8_t rrcTransactionIdentifier; ///< RRC transaction identifier
735 };
736
737 /// CellIdentification structure
739 {
740 uint32_t physCellId; ///< physical cell ID
741 uint32_t dlCarrierFreq; ///< ARFCN - valueEUTRA
742 };
743
744 /// AntennaInfoCommon structure
746 {
747 uint16_t antennaPortsCount; ///< antenna ports count
748 };
749
750 /// UlPowerControlCommonSCell structure
752 {
753 uint16_t alpha; ///< alpha value
754 };
755
756 /// PrachConfigSCell structure
758 {
759 uint16_t index; ///< the index
760 };
761
762 /// NonUlConfiguration structure
764 {
765 // 3GPP TS 36.311 v.11.10 R11 pag.220
766 /// 1: Cell characteristics
767 uint16_t dlBandwidth;
768 /// 2: Physical configuration, general antennaInfoCommon-r10
770 // 3: Physical configuration, control phich-Config-r10
771 // Not Implemented
772 /// 4: Physical configuration, physical channels pdsch-ConfigCommon-r10
774 // 5: tdd-Config-r10
775 // Not Implemented
776 };
777
778 /// UlConfiguration structure
780 {
781 FreqInfo ulFreqInfo; ///< UL frequency info
782 UlPowerControlCommonSCell ulPowerControlCommonSCell; ///< 3GPP TS 36.331 v.11.10 R11 pag.223
783 SoundingRsUlConfigCommon soundingRsUlConfigCommon; ///< sounding RS UL config common
784 PrachConfigSCell prachConfigSCell; ///< PRACH config SCell
785 // PushConfigCommon pushConfigCommon; //NOT IMPLEMENTED!
786 };
787
788 /// AntennaInfoUl structure
790 {
791 uint8_t transmissionMode; ///< transmission mode
792 };
793
794 /// PuschConfigDedicatedSCell structure
796 {
797 /// 3GPP TS 36.331 v.11.10 R11 page 216
799 };
800
801 /// UlPowerControlDedicatedSCell structure
803 {
804 /// 3GPP TS 36.331 v.11.10 R11 page 234
805 uint16_t pSrsOffset;
806 };
807
808 /// PhysicalConfigDedicatedSCell structure
810 {
811 // Non-Ul Configuration
812 bool haveNonUlConfiguration; ///< have non UL configuration?
813 bool haveAntennaInfoDedicated; ///< have antenna info dedicated?
814 AntennaInfoDedicated antennaInfo; ///< antenna info dedicated
815 bool crossCarrierSchedulingConfig; ///< currently implemented as boolean variable -->
816 ///< implementing crossCarrierScheduling is out of the
817 ///< scope of this GSoC proposal
818 bool havePdschConfigDedicated; ///< have PDSCH config dedicated?
819 PdschConfigDedicated pdschConfigDedicated; ///< PDSCH config dedicated
820
821 // Ul Configuration
822 bool haveUlConfiguration; ///< have UL configuration?
823 bool haveAntennaInfoUlDedicated; ///< have antenna info UL dedicated?
825 PuschConfigDedicatedSCell pushConfigDedicatedSCell; ///< PUSCH config dedicated SCell
827 ulPowerControlDedicatedSCell; ///< UL power control dedicated SCell
828 bool haveSoundingRsUlConfigDedicated; ///< have sounding RS UL config dedicated?
830 soundingRsUlConfigDedicated; ///< sounding RS UL config dedicated
831 };
832
833 /// RadioResourceConfigCommonSCell
835 {
836 bool haveNonUlConfiguration; ///< have non UL configuration?
837 NonUlConfiguration nonUlConfiguration; ///< non UL configuration
838 bool haveUlConfiguration; ///< have UL configuration
839 UlConfiguration ulConfiguration; ///< UL configuration
840 };
841
842 /// RadioResourceConfigDedicatedSCell structure
844 {
846 physicalConfigDedicatedSCell; ///< physical config dedicated SCell
847 };
848
849 /// SCellToAddMod structure
851 {
852 uint32_t sCellIndex; ///< SCell index
853 CellIdentification cellIdentification; ///< cell identification
855 radioResourceConfigCommonSCell; ///< radio resource config common SCell
856 bool haveRadioResourceConfigDedicatedSCell; ///< have radio resource config dedicated SCell?
858 radioResourceConfigDedicatedSCell; ///< radio resource config dedicated SCell
859 };
860
861 /// NonCriticalExtensionConfiguration structure
863 {
864 std::list<SCellToAddMod> sCellToAddModList; ///< SCell to add mod list
865 std::list<uint8_t> sCellToReleaseList; ///< SCell to release list
866 };
867
868 /// RrcConnectionReconfiguration structure
870 {
871 uint8_t rrcTransactionIdentifier; ///< RRC transaction identifier
872 bool haveMeasConfig; ///< have measure config
873 MeasConfig measConfig; ///< measure config
874 bool haveMobilityControlInfo; ///< have mobility control info
875 MobilityControlInfo mobilityControlInfo; ///< mobility control info
876 bool haveRadioResourceConfigDedicated; ///< have radio resource config dedicated
878 radioResourceConfigDedicated; ///< radio resource config dedicated
879 bool haveNonCriticalExtension; ///< have critical extension?
880 /// 3GPP TS 36.331 v.11.10 R11 Sec. 6.2.2 pag. 147 (also known as ETSI TS 136 331 v.11.10
881 /// Feb-2015)
883 };
884
885 /// RrcConnectionReconfigurationCompleted structure
887 {
888 uint8_t rrcTransactionIdentifier; ///< RRC transaction identifier
889 };
890
891 /// RrcConnectionReestablishmentRequest structure
897
898 /// RrcConnectionReestablishment structure
900 {
901 uint8_t rrcTransactionIdentifier; ///< RRC transaction identifier
903 radioResourceConfigDedicated; ///< radio resource config dedicated
904 };
905
906 /// RrcConnectionReestablishmentComplete structure
908 {
909 uint8_t rrcTransactionIdentifier; ///< RRC transaction identifier
910 };
911
912 /// RrcConnectionReestablishmentReject structure
916
917 /// RrcConnectionRelease structure
919 {
920 uint8_t rrcTransactionIdentifier; ///< RRC transaction identifier
921 };
922
923 /// RrcConnectionReject structure
925 {
926 uint8_t waitTime; ///< wait time
927 };
928
929 /// HandoverPreparationInfo structure
931 {
932 AsConfig asConfig; ///< AS config
933 };
934
935 /// MeasurementReport structure
937 {
938 MeasResults measResults; ///< measure results
939 };
940};
941
942/**
943 * @brief Part of the RRC protocol. This Service Access Point (SAP) is used by
944 * the UE RRC to send messages to the eNB. Each method defined in this
945 * class corresponds to the transmission of a message that is defined in
946 * Section 6.2.2 of TS 36.331.
947 */
949{
950 public:
951 /// SetupParameters structure
953 {
954 LteRlcSapProvider* srb0SapProvider; ///< SRB0 SAP provider
955 LtePdcpSapProvider* srb1SapProvider; ///< SRB1 SAP provider
956 };
957
958 /**
959 * @brief Setup function
960 * @param params the setup parameters
961 */
962 virtual void Setup(SetupParameters params) = 0;
963
964 /**
965 * @brief Send an _RRCConnectionRequest message to the serving eNodeB
966 * during an RRC connection establishment procedure
967 * (Section 5.3.3 of TS 36.331).
968 * @param msg the message
969 */
971
972 /**
973 * @brief Send an _RRCConnectionSetupComplete_ message to the serving eNodeB
974 * during an RRC connection establishment procedure
975 * (Section 5.3.3 of TS 36.331).
976 * @param msg the message
977 */
979
980 /**
981 * @brief Send an _RRCConnectionReconfigurationComplete_ message to the serving eNodeB
982 * during an RRC connection reconfiguration procedure
983 * (Section 5.3.5 of TS 36.331).
984 * @param msg the message
985 */
988
989 /**
990 * @brief Send an _RRCConnectionReestablishmentRequest_ message to the serving eNodeB
991 * during an RRC connection re-establishment procedure
992 * (Section 5.3.7 of TS 36.331).
993 * @param msg the message
994 */
997
998 /**
999 * @brief Send an _RRCConnectionReestablishmentComplete_ message to the serving eNodeB
1000 * during an RRC connection re-establishment procedure
1001 * (Section 5.3.7 of TS 36.331).
1002 * @param msg the message
1003 */
1006
1007 /**
1008 * @brief Send a _MeasurementReport_ message to the serving eNodeB
1009 * during a measurement reporting procedure
1010 * (Section 5.5.5 of TS 36.331).
1011 * @param msg the message
1012 */
1014
1015 /**
1016 * @brief Send UE context remove request function
1017 *
1018 * Request eNodeB to remove UE context once radio link failure or
1019 * random access failure is detected. It is needed since no RLF
1020 * detection mechanism at eNodeB is implemented.
1021 *
1022 * @param rnti the C-RNTI of the UE
1023 */
1024 virtual void SendIdealUeContextRemoveRequest(uint16_t rnti) = 0;
1025};
1026
1027/**
1028 * @brief Part of the RRC protocol. This Service Access Point (SAP) is used to
1029 * let the UE RRC receive a message from the eNB RRC. Each method defined
1030 * in this class corresponds to the reception of a message that is
1031 * defined in Section 6.2.2 of TS 36.331.
1032 */
1034{
1035 public:
1036 /// CompleteSetupParameters structure
1038 {
1039 LteRlcSapUser* srb0SapUser; ///< SRB0 SAP user
1040 LtePdcpSapUser* srb1SapUser; ///< SRB1 SAP user
1041 };
1042
1043 /**
1044 * @brief Complete setup function
1045 * @param params the complete setup parameters
1046 */
1047 virtual void CompleteSetup(CompleteSetupParameters params) = 0;
1048
1049 /**
1050 * @brief Receive a _SystemInformation_ message from the serving eNodeB
1051 * during a system information acquisition procedure
1052 * (Section 5.2.2 of TS 36.331).
1053 * @param msg the message
1054 */
1056
1057 /**
1058 * @brief Receive an _RRCConnectionSetup_ message from the serving eNodeB
1059 * during an RRC connection establishment procedure
1060 * (Section 5.3.3 of TS 36.331).
1061 * @param msg the message
1062 */
1064
1065 /**
1066 * @brief Receive an _RRCConnectionReconfiguration_ message from the serving eNodeB
1067 * during an RRC connection reconfiguration procedure
1068 * (Section 5.3.5 of TS 36.331).
1069 * @param msg the message
1070 */
1072
1073 /**
1074 * @brief Receive an _RRCConnectionReestablishment_ message from the serving eNodeB
1075 * during an RRC connection re-establishment procedure
1076 * (Section 5.3.7 of TS 36.331).
1077 * @param msg the message
1078 */
1080
1081 /**
1082 * @brief Receive an _RRCConnectionReestablishmentReject_ message from the serving eNodeB
1083 * during an RRC connection re-establishment procedure
1084 * (Section 5.3.7 of TS 36.331).
1085 * @param msg the message
1086 */
1088
1089 /**
1090 * @brief Receive an _RRCConnectionRelease_ message from the serving eNodeB
1091 * during an RRC connection release procedure
1092 * (Section 5.3.8 of TS 36.331).
1093 * @param msg the message
1094 */
1096
1097 /**
1098 * @brief Receive an _RRCConnectionReject_ message from the serving eNodeB
1099 * during an RRC connection establishment procedure
1100 * (Section 5.3.3 of TS 36.331).
1101 * @param msg the message
1102 */
1104};
1105
1106/**
1107 * @brief Part of the RRC protocol. This Service Access Point (SAP) is used by
1108 * the eNB RRC to send messages to the UE RRC. Each method defined in
1109 * this class corresponds to the transmission of a message that is
1110 * defined in Section 6.2.2 of TS 36.331.
1111 */
1113{
1114 public:
1115 /// SetupUeParameters structure
1117 {
1118 LteRlcSapProvider* srb0SapProvider; ///< SRB0 SAP provider
1119 LtePdcpSapProvider* srb1SapProvider; ///< SRB1 SAP provider
1120 };
1121
1122 /**
1123 * @brief Setup UE function
1124 * @param rnti the RNTI
1125 * @param params the setup UE parameters
1126 */
1127 virtual void SetupUe(uint16_t rnti, SetupUeParameters params) = 0;
1128 /**
1129 * @brief Remove UE function
1130 * @param rnti the RNTI
1131 */
1132 virtual void RemoveUe(uint16_t rnti) = 0;
1133
1134 /**
1135 * @brief Send a _SystemInformation_ message to all attached UEs
1136 * during a system information acquisition procedure
1137 * (Section 5.2.2 of TS 36.331).
1138 * @param cellId cell ID
1139 * @param msg the message
1140 */
1141 virtual void SendSystemInformation(uint16_t cellId, SystemInformation msg) = 0;
1142
1143 /**
1144 * @brief Send an _RRCConnectionSetup_ message to a UE
1145 * during an RRC connection establishment procedure
1146 * (Section 5.3.3 of TS 36.331).
1147 * @param rnti the RNTI of the destination UE
1148 * @param msg the message
1149 */
1150 virtual void SendRrcConnectionSetup(uint16_t rnti, RrcConnectionSetup msg) = 0;
1151
1152 /**
1153 * @brief Send an _RRCConnectionReconfiguration_ message to a UE
1154 * during an RRC connection reconfiguration procedure
1155 * (Section 5.3.5 of TS 36.331).
1156 * @param rnti the RNTI of the destination UE
1157 * @param msg the message
1158 */
1159 virtual void SendRrcConnectionReconfiguration(uint16_t rnti,
1161
1162 /**
1163 * @brief Send an _RRCConnectionReestablishment_ message to a UE
1164 * during an RRC connection re-establishment procedure
1165 * (Section 5.3.7 of TS 36.331).
1166 * @param rnti the RNTI of the destination UE
1167 * @param msg the message
1168 */
1169 virtual void SendRrcConnectionReestablishment(uint16_t rnti,
1171
1172 /**
1173 * @brief Send an _RRCConnectionReestablishmentReject_ message to a UE
1174 * during an RRC connection re-establishment procedure
1175 * (Section 5.3.7 of TS 36.331).
1176 * @param rnti the RNTI of the destination UE
1177 * @param msg the message
1178 */
1179 virtual void SendRrcConnectionReestablishmentReject(uint16_t rnti,
1181
1182 /**
1183 * @brief Send an _RRCConnectionRelease_ message to a UE
1184 * during an RRC connection release procedure
1185 * (Section 5.3.8 of TS 36.331).
1186 * @param rnti the RNTI of the destination UE
1187 * @param msg the message
1188 */
1189 virtual void SendRrcConnectionRelease(uint16_t rnti, RrcConnectionRelease msg) = 0;
1190
1191 /**
1192 * @brief Send an _RRCConnectionReject_ message to a UE
1193 * during an RRC connection establishment procedure
1194 * (Section 5.3.3 of TS 36.331).
1195 * @param rnti the RNTI of the destination UE
1196 * @param msg the message
1197 */
1198 virtual void SendRrcConnectionReject(uint16_t rnti, RrcConnectionReject msg) = 0;
1199
1200 /**
1201 * @brief Encode handover prepration information
1202 * @param msg HandoverPreparationInfo
1203 * @returns the packet
1204 */
1206 /**
1207 * @brief Decode handover prepration information
1208 * @param p the packet
1209 * @returns HandoverPreparationInfo
1210 */
1212 /**
1213 * @brief Encode handover command
1214 * @param msg RrcConnectionReconfiguration
1215 * @returns the packet
1216 */
1218 /**
1219 * @brief Decode handover command
1220 * @param p the packet
1221 * @returns RrcConnectionReconfiguration
1222 */
1224};
1225
1226/**
1227 * @brief Part of the RRC protocol. This Service Access Point (SAP) is used to
1228 * let the eNB RRC receive a message from a UE RRC. Each method defined
1229 * in this class corresponds to the reception of a message that is
1230 * defined in Section 6.2.2 of TS 36.331.
1231 */
1233{
1234 public:
1235 /// CompleteSetupUeParameters structure
1237 {
1238 LteRlcSapUser* srb0SapUser; ///< SRB0 SAP user
1239 LtePdcpSapUser* srb1SapUser; ///< SRB1 SAP user
1240 };
1241
1242 /**
1243 * @brief Complete setup UE function
1244 * @param rnti the RNTI of UE which sent the message
1245 * @param params CompleteSetupUeParameters
1246 */
1247 virtual void CompleteSetupUe(uint16_t rnti, CompleteSetupUeParameters params) = 0;
1248
1249 /**
1250 * @brief Receive an _RRCConnectionRequest_ message from a UE
1251 * during an RRC connection establishment procedure
1252 * (Section 5.3.3 of TS 36.331).
1253 * @param rnti the RNTI of UE which sent the message
1254 * @param msg the message
1255 */
1256 virtual void RecvRrcConnectionRequest(uint16_t rnti, RrcConnectionRequest msg) = 0;
1257
1258 /**
1259 * @brief Receive an _RRCConnectionSetupComplete_ message from a UE
1260 * during an RRC connection establishment procedure
1261 * (Section 5.3.3 of TS 36.331).
1262 * @param rnti the RNTI of UE which sent the message
1263 * @param msg the message
1264 */
1265 virtual void RecvRrcConnectionSetupCompleted(uint16_t rnti,
1267
1268 /**
1269 * @brief Receive an _RRCConnectionReconfigurationComplete_ message from a UE
1270 * during an RRC connection reconfiguration procedure
1271 * (Section 5.3.5 of TS 36.331).
1272 * @param rnti the RNTI of UE which sent the message
1273 * @param msg the message
1274 */
1276 uint16_t rnti,
1278
1279 /**
1280 * @brief Receive an _RRCConnectionReestablishmentRequest_ message from a UE
1281 * during an RRC connection re-establishment procedure
1282 * (Section 5.3.7 of TS 36.331).
1283 * @param rnti the RNTI of UE which sent the message
1284 * @param msg the message
1285 */
1287 uint16_t rnti,
1289
1290 /**
1291 * @brief Receive an _RRCConnectionReestablishmentComplete_ message from a UE
1292 * during an RRC connection re-establishment procedure
1293 * (Section 5.3.7 of TS 36.331).
1294 * @param rnti the RNTI of UE which sent the message
1295 * @param msg the message
1296 */
1298 uint16_t rnti,
1300
1301 /**
1302 * @brief Receive a _MeasurementReport_ message from a UE
1303 * during a measurement reporting procedure
1304 * (Section 5.5.5 of TS 36.331).
1305 * @param rnti the RNTI of UE which sent the message
1306 * @param msg the message
1307 */
1308 virtual void RecvMeasurementReport(uint16_t rnti, MeasurementReport msg) = 0;
1309
1310 /**
1311 * @brief Receive ideal UE context remove request from the UE RRC.
1312 *
1313 * Receive the notification from UE to remove the UE context
1314 * once radio link failure or random access failure is detected.
1315 * It is needed since no RLF detection mechanism at eNodeB is implemented.
1316 *
1317 * @param rnti the C-RNTI of the UE
1318 */
1319 virtual void RecvIdealUeContextRemoveRequest(uint16_t rnti) = 0;
1320};
1321
1322////////////////////////////////////
1323// templates
1324////////////////////////////////////
1325
1326/**
1327 * Template for the implementation of the LteUeRrcSapUser as a member
1328 * of an owner class of type C to which all methods are forwarded
1329 *
1330 */
1331template <class C>
1333{
1334 public:
1335 /**
1336 * Constructor
1337 *
1338 * @param owner the owner class
1339 */
1340 MemberLteUeRrcSapUser(C* owner);
1341
1342 // Delete default constructor to avoid misuse
1344
1345 // inherited from LteUeRrcSapUser
1346 void Setup(SetupParameters params) override;
1354 void SendMeasurementReport(MeasurementReport msg) override;
1355 void SendIdealUeContextRemoveRequest(uint16_t rnti) override;
1356
1357 private:
1358 C* m_owner; ///< the owner class
1359};
1360
1361template <class C>
1363 : m_owner(owner)
1364{
1365}
1366
1367template <class C>
1368void
1370{
1371 m_owner->DoSetup(params);
1372}
1373
1374template <class C>
1375void
1377{
1378 m_owner->DoSendRrcConnectionRequest(msg);
1379}
1380
1381template <class C>
1382void
1384{
1385 m_owner->DoSendRrcConnectionSetupCompleted(msg);
1386}
1387
1388template <class C>
1389void
1392{
1393 m_owner->DoSendRrcConnectionReconfigurationCompleted(msg);
1394}
1395
1396template <class C>
1397void
1400{
1401 m_owner->DoSendRrcConnectionReestablishmentRequest(msg);
1402}
1403
1404template <class C>
1405void
1408{
1409 m_owner->DoSendRrcConnectionReestablishmentComplete(msg);
1410}
1411
1412template <class C>
1413void
1415{
1416 m_owner->DoSendMeasurementReport(msg);
1417}
1418
1419template <class C>
1420void
1422{
1423 m_owner->DoSendIdealUeContextRemoveRequest(rnti);
1424}
1425
1426/**
1427 * Template for the implementation of the LteUeRrcSapProvider as a member
1428 * of an owner class of type C to which all methods are forwarded
1429 */
1430template <class C>
1432{
1433 public:
1434 /**
1435 * Constructor
1436 *
1437 * @param owner the owner class
1438 */
1439 MemberLteUeRrcSapProvider(C* owner);
1440
1441 // Delete default constructor to avoid misuse
1443
1444 // methods inherited from LteUeRrcSapProvider go here
1445 void CompleteSetup(CompleteSetupParameters params) override;
1446 void RecvSystemInformation(SystemInformation msg) override;
1447 void RecvRrcConnectionSetup(RrcConnectionSetup msg) override;
1453
1454 private:
1455 C* m_owner; ///< the owner class
1456};
1457
1458template <class C>
1460 : m_owner(owner)
1461{
1462}
1463
1464template <class C>
1465void
1467{
1468 m_owner->DoCompleteSetup(params);
1469}
1470
1471template <class C>
1472void
1474{
1475 Simulator::ScheduleNow(&C::DoRecvSystemInformation, m_owner, msg);
1476}
1477
1478template <class C>
1479void
1481{
1482 Simulator::ScheduleNow(&C::DoRecvRrcConnectionSetup, m_owner, msg);
1483}
1484
1485template <class C>
1486void
1488{
1489 Simulator::ScheduleNow(&C::DoRecvRrcConnectionReconfiguration, m_owner, msg);
1490}
1491
1492template <class C>
1493void
1495{
1496 Simulator::ScheduleNow(&C::DoRecvRrcConnectionReestablishment, m_owner, msg);
1497}
1498
1499template <class C>
1500void
1503{
1504 Simulator::ScheduleNow(&C::DoRecvRrcConnectionReestablishmentReject, m_owner, msg);
1505}
1506
1507template <class C>
1508void
1510{
1511 Simulator::ScheduleNow(&C::DoRecvRrcConnectionRelease, m_owner, msg);
1512}
1513
1514template <class C>
1515void
1517{
1518 Simulator::ScheduleNow(&C::DoRecvRrcConnectionReject, m_owner, msg);
1519}
1520
1521/**
1522 * Template for the implementation of the LteEnbRrcSapUser as a member
1523 * of an owner class of type C to which all methods are forwarded
1524 *
1525 */
1526template <class C>
1528{
1529 public:
1530 /**
1531 * Constructor
1532 *
1533 * @param owner the owner class
1534 */
1535 MemberLteEnbRrcSapUser(C* owner);
1536
1537 // Delete default constructor to avoid misuse
1539
1540 // inherited from LteEnbRrcSapUser
1541 void SetupUe(uint16_t rnti, SetupUeParameters params) override;
1542 void RemoveUe(uint16_t rnti) override;
1543 void SendSystemInformation(uint16_t cellId, SystemInformation msg) override;
1544 void SendRrcConnectionSetup(uint16_t rnti, RrcConnectionSetup msg) override;
1545 void SendRrcConnectionReconfiguration(uint16_t rnti, RrcConnectionReconfiguration msg) override;
1546 void SendRrcConnectionReestablishment(uint16_t rnti, RrcConnectionReestablishment msg) override;
1547 void SendRrcConnectionReestablishmentReject(uint16_t rnti,
1549 void SendRrcConnectionRelease(uint16_t rnti, RrcConnectionRelease msg) override;
1550 void SendRrcConnectionReject(uint16_t rnti, RrcConnectionReject msg) override;
1555
1556 private:
1557 C* m_owner; ///< the owner class
1558};
1559
1560template <class C>
1562 : m_owner(owner)
1563{
1564}
1565
1566template <class C>
1567void
1569{
1570 m_owner->DoSetupUe(rnti, params);
1571}
1572
1573template <class C>
1574void
1576{
1577 m_owner->DoRemoveUe(rnti);
1578}
1579
1580template <class C>
1581void
1583{
1584 m_owner->DoSendSystemInformation(cellId, msg);
1585}
1586
1587template <class C>
1588void
1590{
1591 m_owner->DoSendRrcConnectionSetup(rnti, msg);
1592}
1593
1594template <class C>
1595void
1598{
1599 m_owner->DoSendRrcConnectionReconfiguration(rnti, msg);
1600}
1601
1602template <class C>
1603void
1606{
1607 m_owner->DoSendRrcConnectionReestablishment(rnti, msg);
1608}
1609
1610template <class C>
1611void
1613 uint16_t rnti,
1615{
1616 m_owner->DoSendRrcConnectionReestablishmentReject(rnti, msg);
1617}
1618
1619template <class C>
1620void
1622{
1623 m_owner->DoSendRrcConnectionRelease(rnti, msg);
1624}
1625
1626template <class C>
1627void
1629{
1630 m_owner->DoSendRrcConnectionReject(rnti, msg);
1631}
1632
1633template <class C>
1636{
1637 return m_owner->DoEncodeHandoverPreparationInformation(msg);
1638}
1639
1640template <class C>
1643{
1644 return m_owner->DoDecodeHandoverPreparationInformation(p);
1645}
1646
1647template <class C>
1650{
1651 return m_owner->DoEncodeHandoverCommand(msg);
1652}
1653
1654template <class C>
1657{
1658 return m_owner->DoDecodeHandoverCommand(p);
1659}
1660
1661/**
1662 * Template for the implementation of the LteEnbRrcSapProvider as a member
1663 * of an owner class of type C to which all methods are forwarded
1664 */
1665template <class C>
1667{
1668 public:
1669 /**
1670 * Constructor
1671 *
1672 * @param owner
1673 */
1675
1676 // Delete default constructor to avoid misuse
1678
1679 // methods inherited from LteEnbRrcSapProvider go here
1680 void CompleteSetupUe(uint16_t rnti, CompleteSetupUeParameters params) override;
1681 void RecvRrcConnectionRequest(uint16_t rnti, RrcConnectionRequest msg) override;
1682 void RecvRrcConnectionSetupCompleted(uint16_t rnti, RrcConnectionSetupCompleted msg) override;
1684 uint16_t rnti,
1686 void RecvRrcConnectionReestablishmentRequest(uint16_t rnti,
1689 uint16_t rnti,
1691 void RecvMeasurementReport(uint16_t rnti, MeasurementReport msg) override;
1692 void RecvIdealUeContextRemoveRequest(uint16_t rnti) override;
1693
1694 private:
1695 C* m_owner; ///< the owner class
1696};
1697
1698template <class C>
1700 : m_owner(owner)
1701{
1702}
1703
1704template <class C>
1705void
1707{
1708 m_owner->DoCompleteSetupUe(rnti, params);
1709}
1710
1711template <class C>
1712void
1714{
1715 Simulator::ScheduleNow(&C::DoRecvRrcConnectionRequest, m_owner, rnti, msg);
1716}
1717
1718template <class C>
1719void
1722{
1723 Simulator::ScheduleNow(&C::DoRecvRrcConnectionSetupCompleted, m_owner, rnti, msg);
1724}
1725
1726template <class C>
1727void
1729 uint16_t rnti,
1731{
1732 Simulator::ScheduleNow(&C::DoRecvRrcConnectionReconfigurationCompleted, m_owner, rnti, msg);
1733}
1734
1735template <class C>
1736void
1738 uint16_t rnti,
1740{
1741 Simulator::ScheduleNow(&C::DoRecvRrcConnectionReestablishmentRequest, m_owner, rnti, msg);
1742}
1743
1744template <class C>
1745void
1747 uint16_t rnti,
1749{
1750 Simulator::ScheduleNow(&C::DoRecvRrcConnectionReestablishmentComplete, m_owner, rnti, msg);
1751}
1752
1753template <class C>
1754void
1756{
1757 Simulator::ScheduleNow(&C::DoRecvMeasurementReport, m_owner, rnti, msg);
1758}
1759
1760template <class C>
1761void
1763{
1764 Simulator::ScheduleNow(&C::DoRecvIdealUeContextRemoveRequest, m_owner, rnti);
1765}
1766
1767} // namespace ns3
1768
1769#endif // LTE_RRC_SAP_H
Part of the RRC protocol.
virtual void RecvRrcConnectionReestablishmentRequest(uint16_t rnti, RrcConnectionReestablishmentRequest msg)=0
Receive an RRCConnectionReestablishmentRequest message from a UE during an RRC connection re-establis...
virtual void RecvRrcConnectionReestablishmentComplete(uint16_t rnti, RrcConnectionReestablishmentComplete msg)=0
Receive an RRCConnectionReestablishmentComplete message from a UE during an RRC connection re-establi...
virtual void RecvRrcConnectionReconfigurationCompleted(uint16_t rnti, RrcConnectionReconfigurationCompleted msg)=0
Receive an RRCConnectionReconfigurationComplete message from a UE during an RRC connection reconfigur...
virtual void RecvRrcConnectionRequest(uint16_t rnti, RrcConnectionRequest msg)=0
Receive an RRCConnectionRequest message from a UE during an RRC connection establishment procedure (S...
virtual void RecvRrcConnectionSetupCompleted(uint16_t rnti, RrcConnectionSetupCompleted msg)=0
Receive an RRCConnectionSetupComplete message from a UE during an RRC connection establishment proced...
virtual void RecvMeasurementReport(uint16_t rnti, MeasurementReport msg)=0
Receive a MeasurementReport message from a UE during a measurement reporting procedure (Section 5....
virtual void CompleteSetupUe(uint16_t rnti, CompleteSetupUeParameters params)=0
Complete setup UE function.
virtual void RecvIdealUeContextRemoveRequest(uint16_t rnti)=0
Receive ideal UE context remove request from the UE RRC.
Part of the RRC protocol.
virtual void SendRrcConnectionReestablishmentReject(uint16_t rnti, RrcConnectionReestablishmentReject msg)=0
Send an RRCConnectionReestablishmentReject message to a UE during an RRC connection re-establishment ...
virtual void SendRrcConnectionReestablishment(uint16_t rnti, RrcConnectionReestablishment msg)=0
Send an RRCConnectionReestablishment message to a UE during an RRC connection re-establishment proced...
virtual void SendRrcConnectionSetup(uint16_t rnti, RrcConnectionSetup msg)=0
Send an RRCConnectionSetup message to a UE during an RRC connection establishment procedure (Section ...
virtual void SetupUe(uint16_t rnti, SetupUeParameters params)=0
Setup UE function.
virtual void SendSystemInformation(uint16_t cellId, SystemInformation msg)=0
Send a SystemInformation message to all attached UEs during a system information acquisition procedur...
virtual RrcConnectionReconfiguration DecodeHandoverCommand(Ptr< Packet > p)=0
Decode handover command.
virtual void RemoveUe(uint16_t rnti)=0
Remove UE function.
virtual Ptr< Packet > EncodeHandoverPreparationInformation(HandoverPreparationInfo msg)=0
Encode handover prepration information.
virtual HandoverPreparationInfo DecodeHandoverPreparationInformation(Ptr< Packet > p)=0
Decode handover prepration information.
virtual void SendRrcConnectionReconfiguration(uint16_t rnti, RrcConnectionReconfiguration msg)=0
Send an RRCConnectionReconfiguration message to a UE during an RRC connection reconfiguration procedu...
virtual void SendRrcConnectionReject(uint16_t rnti, RrcConnectionReject msg)=0
Send an RRCConnectionReject message to a UE during an RRC connection establishment procedure (Section...
virtual Ptr< Packet > EncodeHandoverCommand(RrcConnectionReconfiguration msg)=0
Encode handover command.
virtual void SendRrcConnectionRelease(uint16_t rnti, RrcConnectionRelease msg)=0
Send an RRCConnectionRelease message to a UE during an RRC connection release procedure (Section 5....
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36....
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36....
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36....
Definition lte-rlc-sap.h:25
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36....
Definition lte-rlc-sap.h:56
Class holding definition common to all UE/eNodeB SAP Users/Providers.
Definition lte-rrc-sap.h:44
static const uint8_t MaxReportCells
Constraint values.
Definition lte-rrc-sap.h:49
virtual ~LteRrcSap()
static double ConvertPdschConfigDedicated2Double(PdschConfigDedicated pdschConfigDedicated)
Convert PDSCH config dedicated function.
ReestablishmentCause
ReestablishmentCause enumeration.
Part of the RRC protocol.
virtual void RecvRrcConnectionReconfiguration(RrcConnectionReconfiguration msg)=0
Receive an RRCConnectionReconfiguration message from the serving eNodeB during an RRC connection reco...
virtual void RecvRrcConnectionReject(RrcConnectionReject msg)=0
Receive an RRCConnectionReject message from the serving eNodeB during an RRC connection establishment...
virtual void RecvSystemInformation(SystemInformation msg)=0
Receive a SystemInformation message from the serving eNodeB during a system information acquisition p...
virtual void CompleteSetup(CompleteSetupParameters params)=0
Complete setup function.
virtual void RecvRrcConnectionRelease(RrcConnectionRelease msg)=0
Receive an RRCConnectionRelease message from the serving eNodeB during an RRC connection release proc...
virtual void RecvRrcConnectionReestablishmentReject(RrcConnectionReestablishmentReject msg)=0
Receive an RRCConnectionReestablishmentReject message from the serving eNodeB during an RRC connectio...
virtual void RecvRrcConnectionSetup(RrcConnectionSetup msg)=0
Receive an RRCConnectionSetup message from the serving eNodeB during an RRC connection establishment ...
virtual void RecvRrcConnectionReestablishment(RrcConnectionReestablishment msg)=0
Receive an RRCConnectionReestablishment message from the serving eNodeB during an RRC connection re-e...
Part of the RRC protocol.
virtual void Setup(SetupParameters params)=0
Setup function.
virtual void SendRrcConnectionReestablishmentComplete(RrcConnectionReestablishmentComplete msg)=0
Send an RRCConnectionReestablishmentComplete message to the serving eNodeB during an RRC connection r...
virtual void SendRrcConnectionReconfigurationCompleted(RrcConnectionReconfigurationCompleted msg)=0
Send an RRCConnectionReconfigurationComplete message to the serving eNodeB during an RRC connection r...
virtual void SendMeasurementReport(MeasurementReport msg)=0
Send a MeasurementReport message to the serving eNodeB during a measurement reporting procedure (Sect...
virtual void SendIdealUeContextRemoveRequest(uint16_t rnti)=0
Send UE context remove request function.
virtual void SendRrcConnectionRequest(RrcConnectionRequest msg)=0
Send an _RRCConnectionRequest message to the serving eNodeB during an RRC connection establishment pr...
virtual void SendRrcConnectionSetupCompleted(RrcConnectionSetupCompleted msg)=0
Send an RRCConnectionSetupComplete message to the serving eNodeB during an RRC connection establishme...
virtual void SendRrcConnectionReestablishmentRequest(RrcConnectionReestablishmentRequest msg)=0
Send an RRCConnectionReestablishmentRequest message to the serving eNodeB during an RRC connection re...
Template for the implementation of the LteEnbRrcSapProvider as a member of an owner class of type C t...
void RecvRrcConnectionReestablishmentComplete(uint16_t rnti, RrcConnectionReestablishmentComplete msg) override
Receive an RRCConnectionReestablishmentComplete message from a UE during an RRC connection re-establi...
void RecvRrcConnectionSetupCompleted(uint16_t rnti, RrcConnectionSetupCompleted msg) override
Receive an RRCConnectionSetupComplete message from a UE during an RRC connection establishment proced...
void RecvMeasurementReport(uint16_t rnti, MeasurementReport msg) override
Receive a MeasurementReport message from a UE during a measurement reporting procedure (Section 5....
void RecvIdealUeContextRemoveRequest(uint16_t rnti) override
Receive ideal UE context remove request from the UE RRC.
void RecvRrcConnectionReconfigurationCompleted(uint16_t rnti, RrcConnectionReconfigurationCompleted msg) override
Receive an RRCConnectionReconfigurationComplete message from a UE during an RRC connection reconfigur...
void CompleteSetupUe(uint16_t rnti, CompleteSetupUeParameters params) override
Complete setup UE function.
void RecvRrcConnectionRequest(uint16_t rnti, RrcConnectionRequest msg) override
Receive an RRCConnectionRequest message from a UE during an RRC connection establishment procedure (S...
void RecvRrcConnectionReestablishmentRequest(uint16_t rnti, RrcConnectionReestablishmentRequest msg) override
Receive an RRCConnectionReestablishmentRequest message from a UE during an RRC connection re-establis...
Template for the implementation of the LteEnbRrcSapUser as a member of an owner class of type C to wh...
void RemoveUe(uint16_t rnti) override
Remove UE function.
Ptr< Packet > EncodeHandoverCommand(RrcConnectionReconfiguration msg) override
Encode handover command.
void SetupUe(uint16_t rnti, SetupUeParameters params) override
Setup UE function.
C * m_owner
the owner class
HandoverPreparationInfo DecodeHandoverPreparationInformation(Ptr< Packet > p) override
Decode handover prepration information.
void SendRrcConnectionReestablishmentReject(uint16_t rnti, RrcConnectionReestablishmentReject msg) override
Send an RRCConnectionReestablishmentReject message to a UE during an RRC connection re-establishment ...
void SendRrcConnectionReject(uint16_t rnti, RrcConnectionReject msg) override
Send an RRCConnectionReject message to a UE during an RRC connection establishment procedure (Section...
void SendSystemInformation(uint16_t cellId, SystemInformation msg) override
Send a SystemInformation message to all attached UEs during a system information acquisition procedur...
void SendRrcConnectionSetup(uint16_t rnti, RrcConnectionSetup msg) override
Send an RRCConnectionSetup message to a UE during an RRC connection establishment procedure (Section ...
void SendRrcConnectionRelease(uint16_t rnti, RrcConnectionRelease msg) override
Send an RRCConnectionRelease message to a UE during an RRC connection release procedure (Section 5....
Ptr< Packet > EncodeHandoverPreparationInformation(HandoverPreparationInfo msg) override
Encode handover prepration information.
void SendRrcConnectionReestablishment(uint16_t rnti, RrcConnectionReestablishment msg) override
Send an RRCConnectionReestablishment message to a UE during an RRC connection re-establishment proced...
void SendRrcConnectionReconfiguration(uint16_t rnti, RrcConnectionReconfiguration msg) override
Send an RRCConnectionReconfiguration message to a UE during an RRC connection reconfiguration procedu...
RrcConnectionReconfiguration DecodeHandoverCommand(Ptr< Packet > p) override
Decode handover command.
Template for the implementation of the LteUeRrcSapProvider as a member of an owner class of type C to...
void RecvRrcConnectionReestablishment(RrcConnectionReestablishment msg) override
Receive an RRCConnectionReestablishment message from the serving eNodeB during an RRC connection re-e...
void RecvRrcConnectionRelease(RrcConnectionRelease msg) override
Receive an RRCConnectionRelease message from the serving eNodeB during an RRC connection release proc...
void RecvRrcConnectionReestablishmentReject(RrcConnectionReestablishmentReject msg) override
Receive an RRCConnectionReestablishmentReject message from the serving eNodeB during an RRC connectio...
void CompleteSetup(CompleteSetupParameters params) override
Complete setup function.
void RecvRrcConnectionReconfiguration(RrcConnectionReconfiguration msg) override
Receive an RRCConnectionReconfiguration message from the serving eNodeB during an RRC connection reco...
void RecvRrcConnectionReject(RrcConnectionReject msg) override
Receive an RRCConnectionReject message from the serving eNodeB during an RRC connection establishment...
void RecvRrcConnectionSetup(RrcConnectionSetup msg) override
Receive an RRCConnectionSetup message from the serving eNodeB during an RRC connection establishment ...
void RecvSystemInformation(SystemInformation msg) override
Receive a SystemInformation message from the serving eNodeB during a system information acquisition p...
Template for the implementation of the LteUeRrcSapUser as a member of an owner class of type C to whi...
void SendRrcConnectionReconfigurationCompleted(RrcConnectionReconfigurationCompleted msg) override
Send an RRCConnectionReconfigurationComplete message to the serving eNodeB during an RRC connection r...
void SendMeasurementReport(MeasurementReport msg) override
Send a MeasurementReport message to the serving eNodeB during a measurement reporting procedure (Sect...
void SendRrcConnectionReestablishmentComplete(RrcConnectionReestablishmentComplete msg) override
Send an RRCConnectionReestablishmentComplete message to the serving eNodeB during an RRC connection r...
void SendRrcConnectionSetupCompleted(RrcConnectionSetupCompleted msg) override
Send an RRCConnectionSetupComplete message to the serving eNodeB during an RRC connection establishme...
void SendRrcConnectionReestablishmentRequest(RrcConnectionReestablishmentRequest msg) override
Send an RRCConnectionReestablishmentRequest message to the serving eNodeB during an RRC connection re...
void SendIdealUeContextRemoveRequest(uint16_t rnti) override
Send UE context remove request function.
void SendRrcConnectionRequest(RrcConnectionRequest msg) override
Send an _RRCConnectionRequest message to the serving eNodeB during an RRC connection establishment pr...
void Setup(SetupParameters params) override
Setup function.
C * m_owner
the owner class
Smart pointer class similar to boost::intrusive_ptr.
static EventId ScheduleNow(FUNC f, Ts &&... args)
Schedule an event to expire Now.
Definition simulator.h:594
Every class exported by the ns3 library is enclosed in the ns3 namespace.
CompleteSetupUeParameters structure.
SetupUeParameters structure.
LtePdcpSapProvider * srb1SapProvider
SRB1 SAP provider.
LteRlcSapProvider * srb0SapProvider
SRB0 SAP provider.
AntennaInfoCommon structure.
uint16_t antennaPortsCount
antenna ports count
AntennaInfoDedicated structure.
uint8_t transmissionMode
transmission mode
AntennaInfoUl structure.
uint8_t transmissionMode
transmission mode
AsConfig structure.
RadioResourceConfigDedicated sourceRadioResourceConfig
source radio resource config
MasterInformationBlock sourceMasterInformationBlock
source master information block
uint16_t sourceUeIdentity
source UE identity
MeasConfig sourceMeasConfig
source measure config
uint32_t sourceDlCarrierFreq
source DL carrier frequency
SystemInformationBlockType1 sourceSystemInformationBlockType1
source system information block type 1
SystemInformationBlockType2 sourceSystemInformationBlockType2
source system information block type 2
BlackCellsToAddMod structure.
PhysCellIdRange physCellIdRange
Phy cell ID range.
CarrierBandwidthEutra structure.
CarrierFreqEutra structure.
uint32_t dlCarrierFreq
DL carrier frequency.
uint32_t ulCarrierFreq
UL carrier frequency.
CellIdentification structure.
uint32_t dlCarrierFreq
ARFCN - valueEUTRA.
uint32_t physCellId
physical cell ID
CellSelectionInfo structure.
Definition lte-rrc-sap.h:69
int8_t qRxLevMin
INTEGER (-70..-22), actual value = IE value * 2 [dBm].
Definition lte-rrc-sap.h:70
int8_t qQualMin
INTEGER (-34..-3), actual value = IE value [dB].
Definition lte-rrc-sap.h:71
CellsToAddMod structure.
int8_t cellIndividualOffset
cell individual offset
uint8_t cellIndex
cell index
uint16_t physCellId
Phy cell ID.
CgiInfo structure.
uint32_t cellIdentity
cell identity
uint32_t plmnIdentity
PLMN identity.
std::list< uint32_t > plmnIdentityList
PLMN identity list.
uint16_t trackingAreaCode
tracking area code
DrbToAddMod structure.
uint8_t epsBearerIdentity
EPS bearer identity.
RlcConfig rlcConfig
RLC config.
uint8_t logicalChannelIdentity
logical channel identify
uint8_t drbIdentity
DRB identity.
LogicalChannelConfig logicalChannelConfig
logical channel config
FreqInfo structure.
Definition lte-rrc-sap.h:76
uint32_t ulCarrierFreq
UL carrier frequency.
Definition lte-rrc-sap.h:77
uint16_t ulBandwidth
UL bandwidth.
Definition lte-rrc-sap.h:78
HandoverPreparationInfo structure.
LogicalChannelConfig structure.
Definition lte-rrc-sap.h:98
uint16_t bucketSizeDurationMs
bucket size duration ms
uint16_t prioritizedBitRateKbps
prioritized bit rate Kbps
uint8_t logicalChannelGroup
logical channel group
MasterInformationBlock structure.
uint16_t systemFrameNumber
system frame number
MeasConfig structure.
std::list< uint8_t > measIdToRemoveList
measure ID to remove list
uint8_t sMeasure
S measure.
std::list< MeasObjectToAddMod > measObjectToAddModList
measure object to add mod list
std::list< uint8_t > reportConfigToRemoveList
report config to remove list
std::list< uint8_t > measObjectToRemoveList
measure object to remove list
SpeedStatePars speedStatePars
speed state parameters
bool haveMeasGapConfig
have measure gap config?
QuantityConfig quantityConfig
quantity config
bool haveSmeasure
have S measure?
bool haveSpeedStatePars
have speed state parameters?
std::list< ReportConfigToAddMod > reportConfigToAddModList
report config to add mod list
MeasGapConfig measGapConfig
measure gap config
std::list< MeasIdToAddMod > measIdToAddModList
measure ID to add mod list
bool haveQuantityConfig
have quantity config?
MeasGapConfig structure.
uint8_t gapOffsetValue
gap offset value
MeasIdToAddMod structure.
uint8_t measObjectId
measure object ID
uint8_t reportConfigId
report config ID
MeasObjectEutra structure.
std::list< uint8_t > cellsToRemoveList
cells to remove list
bool haveCellForWhichToReportCGI
have cell for which to report CGI?
std::list< CellsToAddMod > cellsToAddModList
cells to add mod list
uint16_t allowedMeasBandwidth
allowed measure bandwidth
int8_t offsetFreq
offset frequency
uint8_t neighCellConfig
neighbor cell config
uint16_t cellForWhichToReportCGI
cell for which to report CGI
bool presenceAntennaPort1
antenna port 1 present?
std::list< uint8_t > blackCellsToRemoveList
black cells to remove list
std::list< BlackCellsToAddMod > blackCellsToAddModList
black cells to add mod list
uint32_t carrierFreq
carrier frequency
MeasObjectToAddMod structure.
uint8_t measObjectId
measure object ID
MeasObjectEutra measObjectEutra
measure object eutra
MeasResultBestNeighCell structure.
uint16_t physCellId
physical cell ID
MeasResultEutra structure.
uint8_t rsrqResult
RSRQ result.
uint8_t rsrpResult
RSRP result.
bool haveRsrpResult
have RSRP result
bool haveRsrqResult
have RSRQ result?
uint16_t physCellId
Phy cell ID.
bool haveCgiInfo
have CGI info?
MeasResultPCell structure.
uint8_t rsrqResult
the RSRQ result
uint8_t rsrpResult
the RSRP result
MeasResultSCell structure.
uint8_t rsrpResult
the RSRP result
uint8_t rsrqResult
the RSRQ result
MeasResultServFreq structure.
bool haveMeasResultSCell
have measResultSCell?
MeasResultBestNeighCell measResultBestNeighCell
best neighbor cell measurement results
bool haveMeasResultBestNeighCell
have measResultBestNeighCell?
uint16_t servFreqId
serving cell index
MeasResultSCell measResultSCell
SCell measurement results.
MeasResults structure.
uint8_t measId
measure ID
bool haveMeasResultNeighCells
have measure result neighbor cells
std::list< MeasResultEutra > measResultListEutra
measure result list eutra
bool haveMeasResultServFreqList
has measResultServFreqList-r10
std::list< MeasResultServFreq > measResultServFreqList
MeasResultServFreqList-r10.
MeasResultPCell measResultPCell
measurement result primary cell
MeasurementReport structure.
MeasResults measResults
measure results
MobilityControlInfo structure.
RadioResourceConfigCommon radioResourceConfigCommon
radio resource config common
RachConfigDedicated rachConfigDedicated
RACH config dedicated.
bool haveRachConfigDedicated
Have RACH config dedicated?
uint16_t newUeIdentity
new UE identity
bool haveCarrierBandwidth
have carrier bandwidth?
bool haveCarrierFreq
have carrier frequency?
CarrierBandwidthEutra carrierBandwidth
carrier bandwidth
CarrierFreqEutra carrierFreq
carrier frequency
uint16_t targetPhysCellId
target Phy cell ID
MobilityStateParameters structure.
uint8_t nCellChangeHigh
cell change high
uint8_t nCellChangeMedium
cell change medium
NonCriticalExtensionConfiguration structure.
std::list< uint8_t > sCellToReleaseList
SCell to release list.
std::list< SCellToAddMod > sCellToAddModList
SCell to add mod list.
NonUlConfiguration structure.
AntennaInfoCommon antennaInfoCommon
2: Physical configuration, general antennaInfoCommon-r10
PdschConfigCommon pdschConfigCommon
4: Physical configuration, physical channels pdsch-ConfigCommon-r10
uint16_t dlBandwidth
1: Cell characteristics
PdschConfigCommon structure.
int8_t referenceSignalPower
INTEGER (-60..50),.
int8_t pb
INTEGER (0..3),.
PdschConfigDedicated structure.
Db
P_A values, TS 36.331 6.3.2 PDSCH-Config ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77,...
PhysCellIdRange structure.
uint16_t start
starting cell ID
PhysicalConfigDedicated structure.
PdschConfigDedicated pdschConfigDedicated
PDSCH config dedicated.
bool haveAntennaInfoDedicated
have antenna info dedicated?
SoundingRsUlConfigDedicated soundingRsUlConfigDedicated
sounding RS UL config dedicated
bool haveSoundingRsUlConfigDedicated
have sounding RS UL config dedicated?
bool havePdschConfigDedicated
have PDSCH config dedicated?
AntennaInfoDedicated antennaInfo
antenna info
PhysicalConfigDedicatedSCell structure.
PuschConfigDedicatedSCell pushConfigDedicatedSCell
PUSCH config dedicated SCell.
AntennaInfoDedicated antennaInfoUl
antenna info UL
SoundingRsUlConfigDedicated soundingRsUlConfigDedicated
sounding RS UL config dedicated
PdschConfigDedicated pdschConfigDedicated
PDSCH config dedicated.
bool haveSoundingRsUlConfigDedicated
have sounding RS UL config dedicated?
bool haveUlConfiguration
have UL configuration?
bool haveAntennaInfoUlDedicated
have antenna info UL dedicated?
bool havePdschConfigDedicated
have PDSCH config dedicated?
bool crossCarrierSchedulingConfig
currently implemented as boolean variable --> implementing crossCarrierScheduling is out of the scope...
bool haveNonUlConfiguration
have non UL configuration?
AntennaInfoDedicated antennaInfo
antenna info dedicated
bool haveAntennaInfoDedicated
have antenna info dedicated?
UlPowerControlDedicatedSCell ulPowerControlDedicatedSCell
UL power control dedicated SCell.
PlmnIdentityInfo structure.
Definition lte-rrc-sap.h:54
uint32_t plmnIdentity
PLMN identity.
Definition lte-rrc-sap.h:55
PrachConfigSCell structure.
PreambleInfo structure.
uint8_t numberOfRaPreambles
number of RA preambles
PuschConfigDedicatedSCell structure.
uint16_t nPuschIdentity
3GPP TS 36.331 v.11.10 R11 page 216
QuantityConfig structure.
uint8_t filterCoefficientRSRQ
filter coefficient RSRQ
uint8_t filterCoefficientRSRP
filter coefficient RSRP
RaSupervisionInfo structure.
uint8_t raResponseWindowSize
RA response window size.
uint8_t preambleTransMax
preamble transmit maximum
RachConfigCommon structure.
TxFailParam txFailParam
txFailParams
PreambleInfo preambleInfo
preamble info
RaSupervisionInfo raSupervisionInfo
RA supervision info.
RachConfigDedicated structure.
uint8_t raPreambleIndex
RA preamble index.
uint8_t raPrachMaskIndex
RA PRACH mask index.
RadioResourceConfigCommon structure.
RachConfigCommon rachConfigCommon
RACH config common.
RadioResourceConfigCommonSCell.
NonUlConfiguration nonUlConfiguration
non UL configuration
bool haveUlConfiguration
have UL configuration
bool haveNonUlConfiguration
have non UL configuration?
UlConfiguration ulConfiguration
UL configuration.
RadioResourceConfigCommonSib structure.
RachConfigCommon rachConfigCommon
RACH config common.
PdschConfigCommon pdschConfigCommon
PDSCH config common.
RadioResourceConfigDedicated structure.
PhysicalConfigDedicated physicalConfigDedicated
physical config dedicated
std::list< uint8_t > drbToReleaseList
DRB to release list.
bool havePhysicalConfigDedicated
have physical config dedicated?
std::list< DrbToAddMod > drbToAddModList
DRB to add mod list.
std::list< SrbToAddMod > srbToAddModList
SRB to add mod list.
RadioResourceConfigDedicatedSCell structure.
PhysicalConfigDedicatedSCell physicalConfigDedicatedSCell
physical config dedicated SCell
ReestabUeIdentity structure.
uint16_t physCellId
Phy cell ID.
Specifies criteria for triggering of an E-UTRA measurement reporting event.
bool reportOnLeave
Indicates whether or not the UE shall initiate the measurement reporting procedure when the leaving c...
uint8_t maxReportCells
Maximum number of cells, excluding the serving cell, to be included in the measurement report.
enum ns3::LteRrcSap::ReportConfigEutra::@62 eventId
Event enumeration.
enum ns3::LteRrcSap::ReportConfigEutra::@61 triggerType
Trigger enumeration.
uint8_t hysteresis
Parameter used within the entry and leave condition of an event triggered reporting condition.
@ RSRP
Reference Signal Received Power.
@ RSRQ
Reference Signal Received Quality.
@ EVENT_A2
Event A2: Serving becomes worse than absolute threshold.
@ EVENT_A3
Event A3: Neighbour becomes amount of offset better than PCell.
@ EVENT_A4
Event A4: Neighbour becomes better than absolute threshold.
@ EVENT_A1
Event A1: Serving becomes better than absolute threshold.
@ EVENT_A5
Event A5: PCell becomes worse than absolute threshold1 AND Neighbour becomes better than another abso...
uint8_t reportAmount
Number of measurement reports applicable, always assumed to be infinite.
enum ns3::LteRrcSap::ReportConfigEutra::@65 reportInterval
Report interval enumeration.
ThresholdEutra threshold2
Threshold for event A5.
ReportConfigEutra()
Report config eutra function.
enum ns3::LteRrcSap::ReportConfigEutra::@63 triggerQuantity
Trigger type enumeration.
@ BOTH
Both the RSRP and RSRQ quantities are to be included in the measurement report.
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5.
enum ns3::LteRrcSap::ReportConfigEutra::@64 reportQuantity
Report type enumeration.
int8_t a3Offset
Offset value for Event A3.
uint16_t timeToTrigger
Time during which specific criteria for the event needs to be met in order to trigger a measurement r...
ReportConfigToAddMod structure.
uint8_t reportConfigId
report config ID
ReportConfigEutra reportConfigEutra
report config eutra
RlcConfig structure.
Definition lte-rrc-sap.h:83
Direction
the direction choice
Definition lte-rrc-sap.h:86
Direction choice
direction choice
Definition lte-rrc-sap.h:93
RrcConnectionReconfigurationCompleted structure.
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
RrcConnectionReconfiguration structure.
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
bool haveMobilityControlInfo
have mobility control info
NonCriticalExtensionConfiguration nonCriticalExtension
3GPP TS 36.331 v.11.10 R11 Sec.
bool haveRadioResourceConfigDedicated
have radio resource config dedicated
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated
bool haveNonCriticalExtension
have critical extension?
MobilityControlInfo mobilityControlInfo
mobility control info
RrcConnectionReestablishmentComplete structure.
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
RrcConnectionReestablishment structure.
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
RrcConnectionReestablishmentReject structure.
RrcConnectionReestablishmentRequest structure.
ReestablishmentCause reestablishmentCause
reestablishment cause
RrcConnectionReject structure.
RrcConnectionRelease structure.
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
RrcConnectionRequest structure.
RrcConnectionSetupCompleted structure.
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
RrcConnectionSetup structure.
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated
SCellToAddMod structure.
RadioResourceConfigDedicatedSCell radioResourceConfigDedicatedSCell
radio resource config dedicated SCell
uint32_t sCellIndex
SCell index.
bool haveRadioResourceConfigDedicatedSCell
have radio resource config dedicated SCell?
CellIdentification cellIdentification
cell identification
RadioResourceConfigCommonSCell radioResourceConfigCommonSCell
radio resource config common SCell
SoundingRsUlConfigCommon structure.
uint8_t srsSubframeConfig
SRS subframe config.
uint16_t srsBandwidthConfig
SRS bandwidth config.
SoundingRsUlConfigDedicated structure.
uint16_t srsConfigIndex
SRS config index.
SpeedStatePars structure.
SpeedStateScaleFactors timeToTriggerSf
time to trigger scale factors
MobilityStateParameters mobilityStateParameters
mobility state parameters
SpeedStateScaleFactors structure.
uint8_t sfHigh
scale factor high
uint8_t sfMedium
scale factor medium
SrbToAddMod structure.
LogicalChannelConfig logicalChannelConfig
logical channel config
uint8_t srbIdentity
SB identity.
SystemInformationBlockType1 structure.
CellSelectionInfo cellSelectionInfo
cell selection info
CellAccessRelatedInfo cellAccessRelatedInfo
cell access related info
SystemInformationBlockType2 structure.
RadioResourceConfigCommonSib radioResourceConfigCommon
radio resource config common
SystemInformation structure.
SystemInformationBlockType2 sib2
SIB2.
Threshold for event evaluation.
@ THRESHOLD_RSRP
RSRP is used for the threshold.
@ THRESHOLD_RSRQ
RSRQ is used for the threshold.
enum ns3::LteRrcSap::ThresholdEutra::@60 choice
Threshold enumeration.
uint8_t range
Value range used in RSRP/RSRQ threshold.
TxFailParams structure.
uint8_t connEstFailCount
Number of times that the UE detects T300 expiry on the same cell.
UlConfiguration structure.
UlPowerControlCommonSCell ulPowerControlCommonSCell
3GPP TS 36.331 v.11.10 R11 pag.223
FreqInfo ulFreqInfo
UL frequency info.
SoundingRsUlConfigCommon soundingRsUlConfigCommon
sounding RS UL config common
PrachConfigSCell prachConfigSCell
PRACH config SCell.
UlPowerControlCommonSCell structure.
UlPowerControlDedicatedSCell structure.
uint16_t pSrsOffset
3GPP TS 36.331 v.11.10 R11 page 234
CompleteSetupParameters structure.
SetupParameters structure.
LteRlcSapProvider * srb0SapProvider
SRB0 SAP provider.
LtePdcpSapProvider * srb1SapProvider
SRB1 SAP provider.