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