25 #include "ns3/lte-rrc-header.h"
31 #define MAX_EARFCN 262143
32 #define MAX_RAT_CAPABILITIES 8
33 #define MAX_SI_MESSAGE 32
36 #define MAX_REPORT_CONFIG_ID 32
37 #define MAX_OBJECT_ID 32
38 #define MAX_MEAS_ID 32
39 #define MAX_CELL_MEAS 32
40 #define MAX_CELL_REPORT 8
42 #define MAX_SCELL_REPORT 5
43 #define MAX_SCELL_CONF 5
83 case 15: n = 1;
break;
84 case 25: n = 2;
break;
85 case 50: n = 3;
break;
86 case 75: n = 4;
break;
87 case 100: n = 5;
break;
100 case 0: bw = 6;
break;
101 case 1: bw = 15;
break;
102 case 2: bw = 25;
break;
103 case 3: bw = 50;
break;
104 case 4: bw = 75;
break;
105 case 5: bw = 100;
break;
119 std::list<LteRrcSap::DrbToAddMod>::iterator it = drbToAddModList.begin ();
120 for (; it != drbToAddModList.end (); it++)
124 std::bitset<5> drbToAddModListOptionalFieldsPresent = std::bitset<5> ();
125 drbToAddModListOptionalFieldsPresent.set (4,1);
126 drbToAddModListOptionalFieldsPresent.set (3,0);
127 drbToAddModListOptionalFieldsPresent.set (2,1);
128 drbToAddModListOptionalFieldsPresent.set (1,1);
129 drbToAddModListOptionalFieldsPresent.set (0,1);
138 switch (it->rlcConfig.choice)
207 std::list<LteRrcSap::SrbToAddMod>::iterator it = srbToAddModList.begin ();
208 for (; it != srbToAddModList.end (); it++)
212 std::bitset<2> srbToAddModListOptionalFieldsPresent = std::bitset<2> ();
213 srbToAddModListOptionalFieldsPresent.set (1,0);
214 srbToAddModListOptionalFieldsPresent.set (0,1);
244 int prioritizedBitRate;
248 prioritizedBitRate = 0;
251 prioritizedBitRate = 1;
254 prioritizedBitRate = 2;
257 prioritizedBitRate = 3;
260 prioritizedBitRate = 4;
263 prioritizedBitRate = 5;
266 prioritizedBitRate = 6;
269 prioritizedBitRate = 7;
274 int bucketSizeDuration;
278 bucketSizeDuration = 0;
281 bucketSizeDuration = 1;
284 bucketSizeDuration = 2;
287 bucketSizeDuration = 3;
290 bucketSizeDuration = 4;
293 bucketSizeDuration = 5;
296 bucketSizeDuration = 5;
308 std::bitset<10> optionalFieldsPhysicalConfigDedicated;
310 optionalFieldsPhysicalConfigDedicated.set (8,0);
311 optionalFieldsPhysicalConfigDedicated.set (7,0);
312 optionalFieldsPhysicalConfigDedicated.set (6,0);
313 optionalFieldsPhysicalConfigDedicated.set (5,0);
314 optionalFieldsPhysicalConfigDedicated.set (4,0);
315 optionalFieldsPhysicalConfigDedicated.set (3,0);
318 optionalFieldsPhysicalConfigDedicated.set (0,0);
404 bool isSrbToAddModListPresent = !radioResourceConfigDedicated.
srbToAddModList.empty ();
405 bool isDrbToAddModListPresent = !radioResourceConfigDedicated.
drbToAddModList.empty ();
406 bool isDrbToReleaseListPresent = !radioResourceConfigDedicated.
drbToReleaseList.empty ();
409 std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
410 optionalFieldsPresent.set (5,isSrbToAddModListPresent);
411 optionalFieldsPresent.set (4,isDrbToAddModListPresent);
412 optionalFieldsPresent.set (3,isDrbToReleaseListPresent);
413 optionalFieldsPresent.set (2,0);
414 optionalFieldsPresent.set (1,0);
419 if (isSrbToAddModListPresent)
425 if (isDrbToAddModListPresent)
431 if (isDrbToReleaseListPresent)
434 std::list<uint8_t>::iterator it = radioResourceConfigDedicated.
drbToReleaseList.begin ();
452 std::bitset<3> sysInfoBlk1Opts;
453 sysInfoBlk1Opts.set (2,0);
454 sysInfoBlk1Opts.set (1,0);
455 sysInfoBlk1Opts.set (0,0);
511 std::bitset<9> rrCfgCmmOpts;
512 rrCfgCmmOpts.set (8,1);
513 rrCfgCmmOpts.set (7,0);
514 rrCfgCmmOpts.set (6,0);
515 rrCfgCmmOpts.set (5,0);
516 rrCfgCmmOpts.set (4,0);
517 rrCfgCmmOpts.set (3,0);
518 rrCfgCmmOpts.set (2,0);
519 rrCfgCmmOpts.set (1,0);
520 rrCfgCmmOpts.set (0,0);
653 std::bitset<4> measResultOptional;
655 measResultOptional.set (2,
false);
656 measResultOptional.set (1,
false);
681 std::list<LteRrcSap::MeasResultEutra>::iterator it;
703 if (!it->cgiInfo.plmnIdentityList.empty ())
706 std::list<uint32_t>::iterator it2;
707 for (it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.end (); it2++)
715 std::bitset<2> measResultFieldsPresent;
716 measResultFieldsPresent[1] = it->haveRsrpResult;
717 measResultFieldsPresent[0] = it->haveRsrqResult;
720 if (it->haveRsrpResult)
725 if (it->haveRsrqResult)
741 std::bitset<2> measResultServFreqPresent;
742 measResultServFreqPresent[0] = it.haveMeasResultSCell;
743 measResultServFreqPresent[1] = it.haveMeasResultBestNeighCell;
749 if (it.haveMeasResultSCell)
758 if (it.haveMeasResultBestNeighCell)
770 NS_ASSERT (!it.haveMeasResultBestNeighCell);
782 int nDig = (plmnId > 99) ? 3 : 2;
785 for (
int i = nDig - 1; i >= 0; i--)
787 int n = floor (plmnId / pow (10,i));
789 plmnId -= n * pow (10,i);
962 switch (qOffsetRange)
1065 switch (thresholdEutra.
choice)
1083 std::bitset<11> measConfigOptional;
1093 measConfigOptional.set (1,
false );
1116 std::bitset<5> measObjOpts;
1117 measObjOpts.set (4,!it->measObjectEutra.cellsToRemoveList.empty () );
1118 measObjOpts.set (3,!it->measObjectEutra.cellsToAddModList.empty () );
1119 measObjOpts.set (2,!it->measObjectEutra.blackCellsToRemoveList.empty () );
1120 measObjOpts.set (1,!it->measObjectEutra.blackCellsToAddModList.empty () );
1121 measObjOpts.set (0,it->measObjectEutra.haveCellForWhichToReportCGI);
1134 if (!it->measObjectEutra.cellsToRemoveList.empty ())
1137 for (std::list<uint8_t>::iterator it2 = it->measObjectEutra.cellsToRemoveList.begin (); it2 != it->measObjectEutra.cellsToRemoveList.end (); it2++)
1143 if (!it->measObjectEutra.cellsToAddModList.empty ())
1146 for (std::list<LteRrcSap::CellsToAddMod>::iterator it2 = it->measObjectEutra.cellsToAddModList.begin (); it2 != it->measObjectEutra.cellsToAddModList.end (); it2++)
1161 if (!it->measObjectEutra.blackCellsToRemoveList.empty () )
1164 for (std::list<uint8_t>::iterator it2 = it->measObjectEutra.blackCellsToRemoveList.begin (); it2 != it->measObjectEutra.blackCellsToRemoveList.end (); it2++)
1170 if (!it->measObjectEutra.blackCellsToAddModList.empty () )
1173 for (std::list<LteRrcSap::BlackCellsToAddMod>::iterator it2 = it->measObjectEutra.blackCellsToAddModList.begin (); it2 != it->measObjectEutra.blackCellsToAddModList.end (); it2++)
1180 std::bitset<1> rangePresent = std::bitset<1> (it2->physCellIdRange.haveRange);
1183 if (it2->physCellIdRange.haveRange)
1185 switch (it2->physCellIdRange.range)
1237 if (it->measObjectEutra.haveCellForWhichToReportCGI)
1265 switch (it->reportConfigEutra.triggerType)
1270 switch (it->reportConfigEutra.purpose)
1284 switch (it->reportConfigEutra.eventId)
1317 switch (it->reportConfigEutra.timeToTrigger)
1394 switch (it->reportConfigEutra.reportInterval)
1447 switch (it->reportConfigEutra.reportAmount)
1500 std::bitset<4> quantityConfigOpts (0);
1501 quantityConfigOpts.set (3,1);
1739 std::bitset<3> noncriticalExtension_v1020;
1740 noncriticalExtension_v1020.set (2, !nonCriticalExtension.
sCellToReleaseList.empty ());
1741 noncriticalExtension_v1020.set (1, !nonCriticalExtension.
sCellToAddModList.empty ());
1742 noncriticalExtension_v1020.set (0, 0);
1759 std::bitset<4> sCellToAddMod_r10;
1760 sCellToAddMod_r10.set (3,1);
1761 sCellToAddMod_r10.set (2,1);
1762 sCellToAddMod_r10.set (1,1);
1763 sCellToAddMod_r10.set (0, it.haveRadioResourceConfigDedicatedSCell);
1768 std::bitset<2> cellIdentification_r10;
1769 cellIdentification_r10.set(1,1);
1770 cellIdentification_r10.set(0,1);
1779 if (it.haveRadioResourceConfigDedicatedSCell)
1792 std::bitset<2> radioResourceConfigCommonSCell_r10;
1800 std::bitset<5> nonUlConfiguration_r10;
1801 nonUlConfiguration_r10.set (4,1);
1802 nonUlConfiguration_r10.set (3,1);
1803 nonUlConfiguration_r10.set (2,0);
1804 nonUlConfiguration_r10.set (1,1);
1805 nonUlConfiguration_r10.set (0,0);
1810 std::bitset<1> antennaInfoCommon_r10;
1811 antennaInfoCommon_r10.set (0,1);
1815 std::bitset<2> pdschConfigCommon_r10;
1816 pdschConfigCommon_r10.set (1,1);
1817 pdschConfigCommon_r10.set (0,1);
1828 std::bitset<7> UlConfiguration_r10;
1829 UlConfiguration_r10.set (6,1);
1830 UlConfiguration_r10.set (5,0);
1831 UlConfiguration_r10.set (4,1);
1832 UlConfiguration_r10.set (3,0);
1833 UlConfiguration_r10.set (2,0);
1834 UlConfiguration_r10.set (1,1);
1835 UlConfiguration_r10.set (0,0);
1839 std::bitset<3> FreqInfo_r10;
1840 FreqInfo_r10.set (2,1);
1841 FreqInfo_r10.set (1,1);
1842 FreqInfo_r10.set (0,0);
1849 std::bitset<2> UlPowerControlCommonSCell_r10;
1850 UlPowerControlCommonSCell_r10.set (1,0);
1851 UlPowerControlCommonSCell_r10.set (0,1);
1860 std::bitset<1> prachConfigSCell_r10;
1861 prachConfigSCell_r10.set(0,1);
1872 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
1873 RadioResourceConfigDedicatedSCell_r10.set (0,1);
1883 std::bitset<2> pcdscOpt;
1891 std::bitset<4> nulOpt;
1937 std::bitset<7> ulOpt;
2019 int thresholdEutraChoice, range;
2022 switch (thresholdEutraChoice)
2027 thresholdEutra->
range = range;
2033 thresholdEutra->
range = range;
2047 *qOffsetRange = -24;
2050 *qOffsetRange = -22;
2053 *qOffsetRange = -20;
2056 *qOffsetRange = -18;
2059 *qOffsetRange = -16;
2062 *qOffsetRange = -14;
2065 *qOffsetRange = -12;
2068 *qOffsetRange = -10;
2147 std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
2150 if (optionalFieldsPresent[5])
2156 if (optionalFieldsPresent[4])
2162 if (optionalFieldsPresent[3])
2168 for (
int i = 0; i < n; i++)
2175 if (optionalFieldsPresent[2])
2181 if (optionalFieldsPresent[1])
2188 if (optionalFieldsPresent[0])
2203 srbToAddModList->clear ();
2206 for (
int i = 0; i < numElems; i++)
2211 std::bitset<2> optionalFields;
2219 if (optionalFields[1])
2225 if (optionalFields[0])
2243 srbToAddModList->insert (srbToAddModList->end (),srbToAddMod);
2256 drbToAddModList->clear ();
2258 for (
int i = 0; i < n; i++)
2262 std::bitset<5> optionalFields;
2265 if (optionalFields[4])
2275 if (optionalFields[3])
2281 if (optionalFields[2])
2288 std::bitset<0> bitset0;
2340 if (optionalFields[1])
2346 if (optionalFields[0])
2351 drbToAddModList->insert (drbToAddModList->end (),drbToAddMod);
2363 std::bitset<1> bitset1;
2373 logicalChannelConfig->
priority = n;
2377 uint16_t prioritizedBitRateKbps;
2382 prioritizedBitRateKbps = 0;
2385 prioritizedBitRateKbps = 8;
2388 prioritizedBitRateKbps = 16;
2391 prioritizedBitRateKbps = 32;
2394 prioritizedBitRateKbps = 64;
2397 prioritizedBitRateKbps = 128;
2400 prioritizedBitRateKbps = 256;
2403 prioritizedBitRateKbps = 10000;
2406 prioritizedBitRateKbps = 10000;
2412 uint16_t bucketSizeDurationMs;
2416 bucketSizeDurationMs = 50;
2419 bucketSizeDurationMs = 100;
2422 bucketSizeDurationMs = 150;
2425 bucketSizeDurationMs = 300;
2428 bucketSizeDurationMs = 500;
2431 bucketSizeDurationMs = 1000;
2434 bucketSizeDurationMs = 1000;
2451 std::bitset<10> optionalFieldPresent;
2455 if (optionalFieldPresent[9])
2458 std::bitset<0> bitset0;
2470 if (optionalFieldPresent[8])
2475 if (optionalFieldPresent[7])
2480 if (optionalFieldPresent[6])
2485 if (optionalFieldPresent[5])
2490 if (optionalFieldPresent[4])
2495 if (optionalFieldPresent[3])
2501 if (optionalFieldPresent[2])
2518 std::bitset<0> bitset0;
2549 if (optionalFieldPresent[1])
2560 std::bitset<1> codebookSubsetRestrictionPresent;
2567 if (codebookSubsetRestrictionPresent[0])
2573 int txantennaselchosen;
2575 if (txantennaselchosen == 0)
2580 else if (txantennaselchosen == 1)
2587 if (optionalFieldPresent[0])
2599 NS_FATAL_ERROR (
"RrcAsn1Header Print() function must also specify LteRrcSap::RadioResourceConfigDedicated as a second argument");
2606 std::bitset<2> nonCriticalExtension_v890;
2609 if (nonCriticalExtension_v890[0])
2612 std::bitset<3> nonCriticalExtension_v920;
2614 if (nonCriticalExtension_v920[0])
2617 std::bitset<3> nonCriticalExtension_v1020;
2620 if (nonCriticalExtension_v1020[2])
2628 for (
int i = 0; i < numElems; i++)
2637 if (nonCriticalExtension_v1020[1])
2645 for (
int i = 0; i < numElems; i++)
2647 std::bitset<4> sCellToAddMod_r10;
2663 if (sCellToAddMod_r10[0])
2678 NS_ASSERT (!nonCriticalExtension_v1020[0]);
2689 std::bitset<2> cellIdentification_r10;
2707 std::bitset<2> radioResourceConfigCommonSCell_r10;
2713 std::bitset<5> nonUlConfiguration_r10;
2719 std::bitset<1> antennaInfoCommon_r10;
2724 std::bitset<2> pdschConfigCommon_r10;
2733 std::bitset<7> UlConfiguration_r10;
2736 std::bitset<3> FreqInfo_r10;
2744 std::bitset<2> UlPowerControlCommonSCell_r10;
2749 std::bitset<1> prachConfigSCell_r10;
2762 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
2773 std::bitset<2> pcdscOpt;
2779 std::bitset<4> nulOpt;
2797 std::bitset<1> codebookSubsetRestrictionPresent;
2804 if (codebookSubsetRestrictionPresent[0])
2811 int txantennaselchosen;
2813 if (txantennaselchosen == 0)
2818 else if (txantennaselchosen == 1)
2829 std::bitset<0> bitset0;
2844 std::bitset<7> ulOpt;
2865 std::bitset<1> codebookSubsetRestrictionPresent;
2872 if (codebookSubsetRestrictionPresent[0])
2879 int txantennaselchosen;
2881 if (txantennaselchosen == 0)
2886 else if (txantennaselchosen == 1)
2911 std::bitset<0> bitset0;
2950 os <<
" srbToAddModList: " << std::endl;
2951 std::list<LteRrcSap::SrbToAddMod>::iterator it = radioResourceConfigDedicated.
srbToAddModList.begin ();
2952 for (; it != radioResourceConfigDedicated.
srbToAddModList.end (); it++)
2954 os <<
" srbIdentity: " << (int)it->srbIdentity << std::endl;
2955 os <<
" logicalChannelConfig: " << std::endl;
2956 os <<
" priority: " << (
int)it->logicalChannelConfig.priority << std::endl;
2957 os <<
" prioritizedBitRateKbps: " << (int)it->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
2958 os <<
" bucketSizeDurationMs: " << (
int)it->logicalChannelConfig.bucketSizeDurationMs << std::endl;
2959 os <<
" logicalChannelGroup: " << (int)it->logicalChannelConfig.logicalChannelGroup << std::endl;
2963 os <<
" drbToAddModList: " << std::endl;
2964 std::list<LteRrcSap::DrbToAddMod>::iterator it2 = radioResourceConfigDedicated.
drbToAddModList.begin ();
2965 for (; it2 != radioResourceConfigDedicated.
drbToAddModList.end (); it2++)
2967 os <<
" epsBearerIdentity: " << (int)it2->epsBearerIdentity << std::endl;
2968 os <<
" drbIdentity: " << (
int)it2->drbIdentity << std::endl;
2969 os <<
" rlcConfig: " << it2->rlcConfig.choice << std::endl;
2970 os <<
" logicalChannelIdentity: " << (int)it2->logicalChannelIdentity << std::endl;
2971 os <<
" logicalChannelConfig: " << std::endl;
2972 os <<
" priority: " << (
int)it2->logicalChannelConfig.priority << std::endl;
2973 os <<
" prioritizedBitRateKbps: " << (int)it2->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
2974 os <<
" bucketSizeDurationMs: " << (
int)it2->logicalChannelConfig.bucketSizeDurationMs << std::endl;
2975 os <<
" logicalChannelGroup: " << (int)it2->logicalChannelConfig.logicalChannelGroup << std::endl;
2979 os <<
" drbToReleaseList: ";
2980 std::list<uint8_t>::iterator it3 = radioResourceConfigDedicated.
drbToReleaseList.begin ();
2983 os << (int)*it3 <<
", ";
2991 os <<
" physicalConfigDedicated: " << std::endl;
2996 os <<
" soundingRsUlConfigDedicated: " << std::endl;
3013 std::bitset<0> bitset0;
3016 std::bitset<3> sysInfoBlkT1Opts;
3020 std::bitset<1> cellAccessRelatedInfoOpts;
3024 int numPlmnIdentityInfoElements;
3026 for (
int i = 0; i < numPlmnIdentityInfoElements; i++)
3035 std::bitset<16> trackingAreaCode;
3039 std::bitset<28> cellIdentity;
3052 if (cellAccessRelatedInfoOpts[0])
3055 std::bitset<27> csgIdentity;
3061 std::bitset<1> qRxLevMinOffsetPresent;
3064 if (qRxLevMinOffsetPresent[0])
3070 if (sysInfoBlkT1Opts[2])
3080 int numSchedulingInfo;
3082 for (
int i = 0; i < numSchedulingInfo; i++)
3088 for (
int j = 0; j < numSibType; j++)
3094 if (sysInfoBlkT1Opts[1])
3106 if (sysInfoBlkT1Opts[0])
3117 std::bitset<0> bitset0;
3120 std::bitset<2> sysInfoBlkT2Opts;
3122 if (sysInfoBlkT2Opts[1])
3141 std::bitset<2> freqInfoOpts;
3143 if (freqInfoOpts[1])
3149 if (freqInfoOpts[0])
3159 if (sysInfoBlkT2Opts[0])
3175 std::bitset<0> bitset0;
3178 std::bitset<9> rrCfgCommOptions;
3182 if (rrCfgCommOptions[8])
3188 std::bitset<1> prachConfigInfoPresent;
3195 if (prachConfigInfoPresent[0])
3201 if (rrCfgCommOptions[7])
3242 if (rrCfgCommOptions[6])
3248 if (rrCfgCommOptions[5])
3254 if (rrCfgCommOptions[4])
3260 if (rrCfgCommOptions[3])
3266 if (rrCfgCommOptions[2])
3272 if (rrCfgCommOptions[1])
3278 if (rrCfgCommOptions[0])
3292 std::bitset<0> bitset0;
3298 std::bitset<1> preamblesGroupAConfigPresent;
3357 if (preamblesGroupAConfigPresent[0])
3470 std::bitset<0> bitset0;
3488 std::bitset<1> prachConfigInfoPresent;
3493 if (prachConfigInfoPresent[0])
3581 std::bitset<4> measResultOptionalPresent;
3604 int measResultNeighCellsChoice;
3609 if (measResultNeighCellsChoice == 0)
3615 for (
int i = 0; i < numElems; i++)
3619 std::bitset<1> isCgiInfoPresent;
3626 measResultEutra.
haveCgiInfo = isCgiInfoPresent[0];
3627 if (isCgiInfoPresent[0])
3629 std::bitset<1> havePlmnIdentityList;
3639 std::bitset<28> cellId;
3644 std::bitset<16> trArCo;
3649 if (havePlmnIdentityList[0])
3654 for (
int j = 0; j < numPlmnElems; j++)
3664 std::bitset<2> measResultOpts;
3668 if (measResultOpts[1])
3676 if (measResultOpts[0])
3687 if (measResultNeighCellsChoice == 1)
3693 if (measResultNeighCellsChoice == 2)
3698 if (measResultNeighCellsChoice == 3)
3709 for (
int i = 0; i < numElems; i++)
3714 std::bitset<2> measResultScellPresent;
3759 std::bitset<1> isMccPresent;
3762 if (isMccPresent[0])
3773 for (
int j = mncDigits - 1; j >= 0; j--)
3776 mnc += n * pow (10,j);
3789 std::bitset<0> bitset0;
3790 std::bitset<2> bitset2;
3791 std::bitset<11> bitset11;
3800 int measObjectToRemoveListElems;
3803 for (
int i = 0; i < measObjectToRemoveListElems; i++)
3813 int measObjectToAddModListElems;
3816 for (
int i = 0; i < measObjectToAddModListElems; i++)
3825 int measObjectChoice;
3828 switch (measObjectChoice)
3848 std::bitset<5> measObjectEutraOpts;
3869 if (measObjectEutraOpts[4])
3875 for (
int i = 0; i < numElems; i++)
3882 if (measObjectEutraOpts[3])
3888 for (
int i = 0; i < numElems; i++)
3909 if (measObjectEutraOpts[2])
3915 for (
int i = 0; i < numElems; i++)
3923 if (measObjectEutraOpts[1])
3929 for (
int i = 0; i < numElems; i++)
3938 std::bitset<1> isRangePresent;
4006 if (measObjectEutraOpts[0])
4020 int reportConfigToRemoveListElems;
4023 for (
int i = 0; i < reportConfigToRemoveListElems; i++)
4033 int reportConfigToAddModListElems;
4036 for (
int i = 0; i < reportConfigToAddModListElems; i++)
4045 int reportConfigChoice;
4048 if (reportConfigChoice == 0)
4054 int triggerTypeChoice;
4057 if (triggerTypeChoice == 0)
4067 switch (eventIdChoice)
4161 if (triggerTypeChoice == 1)
4288 if (reportConfigChoice == 1)
4301 int measIdToRemoveListElems;
4304 for (
int i = 0; i < measIdToRemoveListElems; i++)
4314 int measIdToAddModListElems;
4317 for (
int i = 0; i < measIdToAddModListElems; i++)
4340 std::bitset<4> quantityConfigOpts;
4343 if (quantityConfigOpts[3])
4456 if (quantityConfigOpts[2])
4461 if (quantityConfigOpts[1])
4466 if (quantityConfigOpts[0])
4477 int measGapConfigChoice;
4479 switch (measGapConfigChoice)
4490 int gapOffsetChoice;
4492 switch (gapOffsetChoice)
4526 int speedStateParsChoice;
4528 switch (speedStateParsChoice)
4606 m_mmec = std::bitset<8> (0ul);
4607 m_mTmsi = std::bitset<32> (0ul);
4609 m_spare = std::bitset<1> (0ul);
4620 static TypeId tid =
TypeId (
"ns3::RrcConnectionRequestHeader")
4622 .SetGroupName(
"Lte")
4630 os <<
"MMEC:" <<
m_mmec << std::endl;
4631 os <<
"MTMSI:" <<
m_mTmsi << std::endl;
4633 os <<
"Spare: " <<
m_spare << std::endl;
4682 std::bitset<1> dummy;
4683 std::bitset<0> optionalOrDefaultMask;
4761 os <<
"radioResourceConfigDedicated:" << std::endl;
4810 std::bitset<0> bitset0;
4811 std::bitset<1> bitset1;
4812 std::bitset<2> bitset2;
4826 int criticalExtensionChoice;
4828 if (criticalExtensionChoice == 1)
4833 else if (criticalExtensionChoice == 0)
4896 std::list<LteRrcSap::SrbToAddMod>
4902 std::list<LteRrcSap::DrbToAddMod>
4968 std::bitset<0> bitset0;
5071 std::bitset<0> bitset0;
5157 std::bitset<6> options;
5176 std::bitset<4> mobCtrlIntoOptional;
5179 mobCtrlIntoOptional.set (1,0);
5231 std::bitset<2> noncriticalExtension_v890;
5232 noncriticalExtension_v890.set (1,0);
5239 std::bitset<3> noncriticalExtension_v920;
5240 noncriticalExtension_v920.set (1,0);
5241 noncriticalExtension_v920.set (1,0);
5256 std::bitset<0> bitset0;
5285 else if (c1Chosen == 0)
5288 std::bitset<6> rrcConnRecOpts;
5301 std::bitset<4> mobCtrlOpts;
5312 std::bitset<1> ulCarrierFreqPresent;
5318 if (ulCarrierFreqPresent[0])
5329 std::bitset<1> ulBandwidthPresent;
5335 if (ulBandwidthPresent[0])
5352 std::bitset<16> cRnti;
5371 if (rrcConnRecOpts[3])
5384 if (rrcConnRecOpts[1])
5411 os <<
" measObjectToRemoveList: ";
5413 std::list<uint8_t>::iterator it = auxList.begin ();
5414 for (; it != auxList.end (); it++)
5416 os << (int) *it <<
", ";
5422 os <<
" reportConfigToRemoveList: ";
5424 std::list<uint8_t>::iterator it = auxList.begin ();
5425 for (; it != auxList.end (); it++)
5427 os << (int) *it <<
", ";
5433 os <<
" measIdToRemoveList: ";
5435 std::list<uint8_t>::iterator it = auxList.begin ();
5436 for (; it != auxList.end (); it++)
5438 os << (int) *it <<
", ";
5445 os <<
" measObjectToAddMod: " << std::endl;
5447 std::list<LteRrcSap::MeasObjectToAddMod>::iterator it = auxList.begin ();
5448 for (; it != auxList.end (); it++)
5450 os <<
" measObjectId: " << (int)it->measObjectId << std::endl;
5451 os <<
" carrierFreq: " << (
int)it->measObjectEutra.carrierFreq << std::endl;
5452 os <<
" allowedMeasBandwidth: " << (int)it->measObjectEutra.allowedMeasBandwidth << std::endl;
5453 os <<
" presenceAntennaPort1: " << it->measObjectEutra.presenceAntennaPort1 << std::endl;
5454 os <<
" neighCellConfig: " << (
int) it->measObjectEutra.neighCellConfig << std::endl;
5455 os <<
" offsetFreq: " << (int)it->measObjectEutra.offsetFreq << std::endl;
5458 if (!it->measObjectEutra.cellsToRemoveList.empty ())
5460 os <<
" cellsToRemoveList: ";
5461 std::list<uint8_t> auxList = it->measObjectEutra.cellsToRemoveList;
5462 std::list<uint8_t>::iterator it = auxList.begin ();
5463 for (; it != auxList.end (); it++)
5465 os << (int) *it <<
", ";
5470 if (!it->measObjectEutra.blackCellsToRemoveList.empty ())
5472 os <<
" blackCellsToRemoveList: ";
5473 std::list<uint8_t> auxList = it->measObjectEutra.blackCellsToRemoveList;
5474 std::list<uint8_t>::iterator it = auxList.begin ();
5475 for (; it != auxList.end (); it++)
5477 os << (int) *it <<
", ";
5482 if (!it->measObjectEutra.cellsToAddModList.empty ())
5484 os <<
" cellsToAddModList: " << std::endl;
5485 std::list<LteRrcSap::CellsToAddMod> auxList = it->measObjectEutra.cellsToAddModList;
5486 std::list<LteRrcSap::CellsToAddMod>::iterator it = auxList.begin ();
5487 for (; it != auxList.end (); it++)
5489 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5490 os <<
" physCellId: " << (
int)it->physCellId << std::endl;
5491 os <<
" cellIndividualOffset: " << (int)it->cellIndividualOffset << std::endl;
5492 os <<
" ------ " << std::endl;
5496 if (!it->measObjectEutra.blackCellsToAddModList.empty ())
5498 os <<
" blackCellsToAddModList: " << std::endl;
5499 std::list<LteRrcSap::BlackCellsToAddMod> auxList = it->measObjectEutra.blackCellsToAddModList;
5500 std::list<LteRrcSap::BlackCellsToAddMod>::iterator it = auxList.begin ();
5501 for (; it != auxList.end (); it++)
5503 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5504 os <<
" physCellIdRange.start: " << (
int)it->physCellIdRange.start << std::endl;
5505 os <<
" physCellIdRange.haveRange: " << it->physCellIdRange.haveRange << std::endl;
5506 os <<
" physCellIdRange.range: " << (int)it->physCellIdRange.range << std::endl;
5507 os <<
" ------ " << std::endl;
5511 os <<
" haveCellForWhichToReportCGI: " << it->measObjectEutra.haveCellForWhichToReportCGI << std::endl;
5512 os <<
" cellForWhichToReportCGI: " << (int)it->measObjectEutra.cellForWhichToReportCGI << std::endl;
5513 os <<
" ------------- " << std::endl;
5520 os <<
" reportConfigToAddModList: " << std::endl;
5522 std::list<LteRrcSap::ReportConfigToAddMod>::iterator it = auxList.begin ();
5523 for (; it != auxList.end (); it++)
5525 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5526 os <<
" reportConfigEutra.triggerType " << (
int)it->reportConfigEutra.triggerType << std::endl;
5529 os <<
" reportConfigEutra.eventId " << (int)it->reportConfigEutra.eventId << std::endl;
5532 os <<
" reportConfigEutra.reportOnLeave " << (int)it->reportConfigEutra.reportOnLeave << std::endl;
5533 os <<
" reportConfigEutra.a3Offset " << (
int)it->reportConfigEutra.a3Offset << std::endl;
5537 os <<
" reportConfigEutra.threshold1.choice " << (int)it->reportConfigEutra.threshold1.choice << std::endl;
5538 os <<
" reportConfigEutra.threshold1.range " << (
int)it->reportConfigEutra.threshold1.range << std::endl;
5541 os <<
" reportConfigEutra.threshold2.choice " << (int)it->reportConfigEutra.threshold2.choice << std::endl;
5542 os <<
" reportConfigEutra.threshold2.range " << (
int)it->reportConfigEutra.threshold2.range << std::endl;
5545 os <<
" reportConfigEutra.hysteresis " << (int)it->reportConfigEutra.hysteresis << std::endl;
5546 os <<
" reportConfigEutra.timeToTrigger " << (
int)it->reportConfigEutra.timeToTrigger << std::endl;
5550 os <<
" reportConfigEutra.purpose " << (int)it->reportConfigEutra.purpose << std::endl;
5552 os <<
" reportConfigEutra.triggerQuantity " << (int)it->reportConfigEutra.triggerQuantity << std::endl;
5553 os <<
" reportConfigEutra.reportQuantity " << (
int)it->reportConfigEutra.reportQuantity << std::endl;
5554 os <<
" reportConfigEutra.maxReportCells " << (int)it->reportConfigEutra.maxReportCells << std::endl;
5555 os <<
" reportConfigEutra.reportInterval " << (
int)it->reportConfigEutra.reportInterval << std::endl;
5556 os <<
" reportConfigEutra.reportAmount " << (int)it->reportConfigEutra.reportAmount << std::endl;
5562 os <<
" measIdToAddModList: " << std::endl;
5564 std::list<LteRrcSap::MeasIdToAddMod>::iterator it = auxList.begin ();
5565 for (; it != auxList.end (); it++)
5567 os <<
" measId: " << (int)it->measId << std::endl;
5568 os <<
" measObjectId: " << (
int)it->measObjectId << std::endl;
5569 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5570 os <<
" ------ " << std::endl;
5733 std::list<LteRrcSap::SrbToAddMod>
5739 std::list<LteRrcSap::DrbToAddMod>
5783 std::bitset<4> handoverPrepInfoOpts;
5784 handoverPrepInfoOpts.set (3,1);
5785 handoverPrepInfoOpts.set (2,0);
5786 handoverPrepInfoOpts.set (1,0);
5787 handoverPrepInfoOpts.set (0,0);
5841 std::bitset<0> bitset0;
5849 int criticalExtensionsChosen;
5852 if (criticalExtensionsChosen == 1)
5857 else if (criticalExtensionsChosen == 0)
5866 else if (c1Chosen == 0)
5869 std::bitset<4> handoverPrepInfoOpts;
5874 for (
int i = 0; i < n; i++)
5880 if (handoverPrepInfoOpts[3])
5897 std::bitset<16> cRnti;
5912 std::bitset<8> systemFrameNumber;
5916 std::bitset<10> spare;
5933 if (handoverPrepInfoOpts[2])
5938 if (handoverPrepInfoOpts[1])
5943 if (handoverPrepInfoOpts[0])
6054 std::bitset<0> bitset0;
6079 std::bitset<16> cRnti;
6089 std::bitset<16> shortMacI;
6111 std::bitset<2> spare;
6203 std::bitset<0> bitset0;
6217 int criticalExtensionsChoice;
6219 if (criticalExtensionsChoice == 1)
6224 else if (criticalExtensionsChoice == 0)
6237 std::bitset<1> nonCriticalExtensionPresent;
6255 os <<
"RadioResourceConfigDedicated: " << std::endl;
6323 std::bitset<0> bitset0;
6337 int criticalExtensionsChoice;
6339 if (criticalExtensionsChoice == 1)
6344 else if (criticalExtensionsChoice == 0)
6347 std::bitset<1> opts;
6422 std::bitset<0> bitset0;
6431 int criticalExtensionsChoice;
6433 if (criticalExtensionsChoice == 1)
6438 else if (criticalExtensionsChoice == 0)
6441 std::bitset<1> opts;
6516 std::bitset<0> bitset0;
6530 int criticalExtensionsChoice;
6532 if (criticalExtensionsChoice == 1)
6537 else if (criticalExtensionsChoice == 0)
6546 std::bitset<3> opts;
6638 std::bitset<0> bitset0;
6648 int criticalExtensionsChoice;
6650 if (criticalExtensionsChoice == 1)
6655 else if (criticalExtensionsChoice == 0)
6665 else if (c1Choice == 0)
6668 std::bitset<1> opts;
6748 std::bitset<0> bitset0;
6754 int criticalExtensionsChoice;
6757 if (criticalExtensionsChoice == 1)
6762 else if (criticalExtensionsChoice == 0)
6775 std::bitset<1> isNonCriticalExtensionPresent;
6781 if (isNonCriticalExtensionPresent[0])
6804 std::list<LteRrcSap::MeasResultEutra>::iterator it = measResultListEutra.begin ();
6805 for (; it != measResultListEutra.end (); it++)
6807 os <<
" physCellId =" << (int) it->physCellId << std::endl;
6808 os <<
" haveCgiInfo =" << it->haveCgiInfo << std::endl;
6809 if (it->haveCgiInfo)
6811 os <<
" plmnIdentity = " << (int) it->cgiInfo.plmnIdentity << std::endl;
6812 os <<
" cellIdentity = " << (
int) it->cgiInfo.cellIdentity << std::endl;
6813 os <<
" trackingAreaCode = " << (int) it->cgiInfo.trackingAreaCode << std::endl;
6814 os <<
" havePlmnIdentityList = " << !it->cgiInfo.plmnIdentityList.empty () << std::endl;
6815 if (!it->cgiInfo.plmnIdentityList.empty ())
6817 for (std::list<uint32_t>::iterator it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.end (); it2++)
6819 os <<
" plmnId : " << *it2 << std::endl;
6824 os <<
" haveRsrpResult =" << it->haveRsrpResult << std::endl;
6825 if (it->haveRsrpResult)
6827 os <<
" rsrpResult =" << (int) it->rsrpResult << std::endl;
6830 os <<
" haveRsrqResult =" << it->haveRsrqResult << std::endl;
6831 if (it->haveRsrqResult)
6833 os <<
" rsrqResult =" << (int) it->rsrqResult << std::endl;
6874 std::cout <<
"UL DCCH MSG TYPE: " <<
m_messageType << std::endl;
6886 std::bitset<0> bitset0;
6935 std::cout <<
"DL DCCH MSG TYPE: " <<
m_messageType << std::endl;
6947 std::bitset<0> bitset0;
6996 std::cout <<
"UL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7008 std::bitset<0> bitset0;
7057 std::cout <<
"DL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7069 std::bitset<0> bitset0;
iterator in a Buffer instance
automatically resized byte buffer
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
void SetMessage(LteRrcSap::HandoverPreparationInfo msg)
Receives a HandoverPreparationInfo IE and stores the contents into the class attributes.
LteRrcSap::HandoverPreparationInfo GetMessage() const
Returns a HandoverPreparationInfo IE from the values in the class attributes.
HandoverPreparationInfoHeader()
LteRrcSap::AsConfig m_asConfig
AS config.
LteRrcSap::AsConfig GetAsConfig() const
Getter for m_asConfig.
ReestablishmentCause
ReestablishmentCause enumeration.
@ RECONFIGURATION_FAILURE
Buffer::Iterator DeserializeDlCcchMessage(Buffer::Iterator bIterator)
Deserialize DL CCCH message function.
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
void SerializeDlCcchMessage(int msgType) const
Serialize DL CCCH message function.
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
void SerializeDlDcchMessage(int msgType) const
Serialize DL DCCH message function.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
Buffer::Iterator DeserializeDlDcchMessage(Buffer::Iterator bIterator)
Deserialize DL DCCH message function.
This class only serves to discriminate which message type has been received in uplink (ue to eNb) for...
void SerializeUlCcchMessage(int msgType) const
Serialize UL CCCH message function.
Buffer::Iterator DeserializeUlCcchMessage(Buffer::Iterator bIterator)
Deserialize DL CCCH message function.
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
Buffer::Iterator DeserializeUlDcchMessage(Buffer::Iterator bIterator)
Deserialize UL DCCH message function.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
void SerializeUlDcchMessage(int msgType) const
Serialize UL DCCH message function.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint16_t antennaPortsCount
antenna ports count
uint8_t transmissionMode
transmission mode
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.
uint8_t cellIndex
cell index
PhysCellIdRange physCellIdRange
Phy cell ID range.
uint16_t dlBandwidth
DL bandwidth.
uint16_t ulBandwidth
UL bandwidth.
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
int8_t cellIndividualOffset
cell individual offset
uint8_t cellIndex
cell index
uint16_t physCellId
Phy cell ID.
uint32_t cellIdentity
cell identity
uint32_t plmnIdentity
PLMN identity.
std::list< uint32_t > plmnIdentityList
PLMN identity list.
uint16_t trackingAreaCode
tracking area code
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
uint32_t ulCarrierFreq
UL carrier frequency.
uint16_t ulBandwidth
UL bandwidth.
HandoverPreparationInfo structure.
AsConfig asConfig
AS config.
LogicalChannelConfig structure.
uint16_t bucketSizeDurationMs
bucket size duration ms
uint16_t prioritizedBitRateKbps
prioritized bit rate Kbps
uint8_t logicalChannelGroup
logical channel group
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?
enum ns3::LteRrcSap::MeasGapConfig::action type
action type
enum ns3::LteRrcSap::MeasGapConfig::gap gapOffsetChoice
gap offset
uint8_t gapOffsetValue
gap offset value
MeasIdToAddMod structure.
uint8_t measObjectId
measure object ID
uint8_t reportConfigId
report config ID
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
uint8_t rsrpResult
the RSRP result
uint8_t rsrqResult
the RSRQ result
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?
uint8_t rsrqResult
the RSRQ result
uint8_t rsrpResult
the RSRP result
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.
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
uint8_t nCellChangeHigh
cell change high
uint8_t tEvaluation
evaluation
uint8_t nCellChangeMedium
cell change medium
uint8_t tHystNormal
hyst normal
NonCriticalExtensionConfiguration structure.
std::list< uint8_t > sCellToReleaseList
SCell to release list.
std::list< SCellToAddMod > sCellToAddModList
SCell to add mod list.
AntennaInfoCommon antennaInfoCommon
2: Physical configuration, general antennaInfoCommon-r10
PdschConfigCommon pdschConfigCommon
4: Physical configuration, physical channels pdsch-ConfigCommon-r10
uint16_t dlBandwidth
1: Cell characteristics
int8_t referenceSignalPower
INTEGER (-60..50),.
int8_t pb
INTEGER (0..3),.
bool haveRange
has a range?
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.
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 haveNonUlConfiguration
have non UL configuration?
AntennaInfoDedicated antennaInfo
antenna info dedicated
bool haveAntennaInfoDedicated
have antenna info dedicated?
uint32_t plmnIdentity
PLMN identity.
uint8_t numberOfRaPreambles
number of RA preambles
uint8_t filterCoefficientRSRQ
filter coefficient RSRQ
uint8_t filterCoefficientRSRP
filter coefficient RSRP
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.
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.
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.
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.
@ 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 hysteresis
Parameter used within the entry and leave condition of an event triggered reporting condition....
enum ns3::LteRrcSap::ReportConfigEutra::@68 reportQuantity
Report type enumeration.
uint8_t reportAmount
Number of measurement reports applicable, always assumed to be infinite.
@ RSRP
Reference Signal Received Power.
@ RSRQ
Reference Signal Received Quality.
ThresholdEutra threshold2
Threshold for event A5.
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5.
enum ns3::LteRrcSap::ReportConfigEutra::@67 triggerQuantity
Trigger type enumeration.
@ BOTH
Both the RSRP and RSRQ quantities are to be included in the measurement report.
@ SAME_AS_TRIGGER_QUANTITY
enum ns3::LteRrcSap::ReportConfigEutra::report purpose
purpose
enum ns3::LteRrcSap::ReportConfigEutra::@66 eventId
Event enumeration.
@ PERIODICAL
periodical report
enum ns3::LteRrcSap::ReportConfigEutra::@69 reportInterval
Report interval enumeration.
enum ns3::LteRrcSap::ReportConfigEutra::@65 triggerType
Trigger enumeration.
int8_t a3Offset
Offset value for Event A3. An integer between -30 and 30. The actual value is (value * 0....
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
enum ns3::LteRrcSap::RlcConfig::direction choice
direction choice
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. 6.2.2 pag. 147 (also known as ETSI TS 136 331 v.11....
bool haveRadioResourceConfigDedicated
have radio resource config dedicated
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated
bool haveNonCriticalExtension
have critical extension?
MeasConfig measConfig
measure config
bool haveMeasConfig
have measure config
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
ReestabUeIdentity ueIdentity
UE identity.
RrcConnectionReject structure.
uint8_t waitTime
wait time
RrcConnectionRelease structure.
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
RrcConnectionRequest structure.
uint64_t ueIdentity
UE identity.
RrcConnectionSetupCompleted structure.
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
RrcConnectionSetup structure.
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated
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
enum ns3::LteRrcSap::SoundingRsUlConfigDedicated::action type
action type
uint16_t srsConfigIndex
SRS config index.
uint16_t srsBandwidth
SRS bandwidth.
SpeedStateScaleFactors timeToTriggerSf
time to trigger scale factors
MobilityStateParameters mobilityStateParameters
mobility state parameters
enum ns3::LteRrcSap::SpeedStatePars::action type
action type
uint8_t sfHigh
scale factor high
uint8_t sfMedium
scale factor medium
LogicalChannelConfig logicalChannelConfig
logical channel config
uint8_t srbIdentity
SB identity.
Threshold for event evaluation.
@ THRESHOLD_RSRP
RSRP is used for the threshold.
@ THRESHOLD_RSRQ
RSRQ is used for the threshold.
uint8_t range
Value range used in RSRP/RSRQ threshold.
enum ns3::LteRrcSap::ThresholdEutra::@64 choice
Threshold enumeration.
uint8_t connEstFailCount
Number of times that the UE detects T300 expiry on the same cell.
UlPowerControlCommonSCell ulPowerControlCommonSCell
3GPP TS 36.331 v.11.10 R11 pag.223
FreqInfo ulFreqInfo
UL frequency info.
PrachConfigSCell prachConfigSCell
PRACH config SCell.
uint16_t alpha
alpha value