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
141 auto it = drbToAddModList.begin();
142 for (; it != drbToAddModList.end(); it++)
146 std::bitset<5> drbToAddModListOptionalFieldsPresent = std::bitset<5>();
147 drbToAddModListOptionalFieldsPresent.set(4,
true);
148 drbToAddModListOptionalFieldsPresent.set(3,
false);
149 drbToAddModListOptionalFieldsPresent.set(2,
true);
150 drbToAddModListOptionalFieldsPresent.set(1,
true);
151 drbToAddModListOptionalFieldsPresent.set(0,
true);
160 switch (it->rlcConfig.choice)
229 auto it = srbToAddModList.begin();
230 for (; it != srbToAddModList.end(); it++)
234 std::bitset<2> srbToAddModListOptionalFieldsPresent = std::bitset<2>();
235 srbToAddModListOptionalFieldsPresent.set(1,
false);
236 srbToAddModListOptionalFieldsPresent.set(0,
true);
267 int prioritizedBitRate;
271 prioritizedBitRate = 0;
274 prioritizedBitRate = 1;
277 prioritizedBitRate = 2;
280 prioritizedBitRate = 3;
283 prioritizedBitRate = 4;
286 prioritizedBitRate = 5;
289 prioritizedBitRate = 6;
292 prioritizedBitRate = 7;
297 int bucketSizeDuration;
301 bucketSizeDuration = 0;
304 bucketSizeDuration = 1;
307 bucketSizeDuration = 2;
310 bucketSizeDuration = 3;
313 bucketSizeDuration = 4;
316 bucketSizeDuration = 5;
319 bucketSizeDuration = 5;
332 std::bitset<10> optionalFieldsPhysicalConfigDedicated;
333 optionalFieldsPhysicalConfigDedicated.set(
336 optionalFieldsPhysicalConfigDedicated.set(8,
false);
337 optionalFieldsPhysicalConfigDedicated.set(7,
false);
338 optionalFieldsPhysicalConfigDedicated.set(6,
false);
339 optionalFieldsPhysicalConfigDedicated.set(5,
false);
340 optionalFieldsPhysicalConfigDedicated.set(4,
false);
341 optionalFieldsPhysicalConfigDedicated.set(3,
false);
342 optionalFieldsPhysicalConfigDedicated.set(
345 optionalFieldsPhysicalConfigDedicated.set(
348 optionalFieldsPhysicalConfigDedicated.set(0,
false);
437 bool isSrbToAddModListPresent = !radioResourceConfigDedicated.
srbToAddModList.empty();
438 bool isDrbToAddModListPresent = !radioResourceConfigDedicated.
drbToAddModList.empty();
439 bool isDrbToReleaseListPresent = !radioResourceConfigDedicated.
drbToReleaseList.empty();
442 std::bitset<6> optionalFieldsPresent = std::bitset<6>();
443 optionalFieldsPresent.set(5, isSrbToAddModListPresent);
444 optionalFieldsPresent.set(4, isDrbToAddModListPresent);
445 optionalFieldsPresent.set(3, isDrbToReleaseListPresent);
446 optionalFieldsPresent.set(2,
false);
447 optionalFieldsPresent.set(1,
false);
452 if (isSrbToAddModListPresent)
458 if (isDrbToAddModListPresent)
464 if (isDrbToReleaseListPresent)
486 std::bitset<3> sysInfoBlk1Opts;
487 sysInfoBlk1Opts.set(2,
false);
488 sysInfoBlk1Opts.set(1,
false);
489 sysInfoBlk1Opts.set(0,
false);
549 std::bitset<9> rrCfgCmmOpts;
550 rrCfgCmmOpts.set(8,
true);
551 rrCfgCmmOpts.set(7,
false);
552 rrCfgCmmOpts.set(6,
false);
553 rrCfgCmmOpts.set(5,
false);
554 rrCfgCmmOpts.set(4,
false);
555 rrCfgCmmOpts.set(3,
false);
556 rrCfgCmmOpts.set(2,
false);
557 rrCfgCmmOpts.set(1,
false);
558 rrCfgCmmOpts.set(0,
false);
693 std::bitset<4> measResultOptional;
695 measResultOptional.set(2,
false);
696 measResultOptional.set(1,
false);
744 if (!it->cgiInfo.plmnIdentityList.empty())
747 for (
auto it2 = it->cgiInfo.plmnIdentityList.begin();
748 it2 != it->cgiInfo.plmnIdentityList.end();
757 std::bitset<2> measResultFieldsPresent;
758 measResultFieldsPresent[1] = it->haveRsrpResult;
759 measResultFieldsPresent[0] = it->haveRsrqResult;
762 if (it->haveRsrpResult)
767 if (it->haveRsrqResult)
783 std::bitset<2> measResultServFreqPresent;
784 measResultServFreqPresent[0] = it.haveMeasResultSCell;
785 measResultServFreqPresent[1] = it.haveMeasResultBestNeighCell;
791 if (it.haveMeasResultSCell)
800 if (it.haveMeasResultBestNeighCell)
812 NS_ASSERT(!it.haveMeasResultBestNeighCell);
824 int nDig = (plmnId > 99) ? 3 : 2;
827 for (
int i = nDig - 1; i >= 0; i--)
829 int n = floor(plmnId / pow(10, i));
831 plmnId -= n * pow(10, i);
1004 switch (qOffsetRange)
1107 switch (thresholdEutra.
choice)
1125 std::bitset<11> measConfigOptional;
1135 measConfigOptional.set(1,
false);
1162 std::bitset<5> measObjOpts;
1163 measObjOpts.set(4, !it->measObjectEutra.cellsToRemoveList.empty());
1164 measObjOpts.set(3, !it->measObjectEutra.cellsToAddModList.empty());
1165 measObjOpts.set(2, !it->measObjectEutra.blackCellsToRemoveList.empty());
1166 measObjOpts.set(1, !it->measObjectEutra.blackCellsToAddModList.empty());
1167 measObjOpts.set(0, it->measObjectEutra.haveCellForWhichToReportCGI);
1180 if (!it->measObjectEutra.cellsToRemoveList.empty())
1183 for (
auto it2 = it->measObjectEutra.cellsToRemoveList.begin();
1184 it2 != it->measObjectEutra.cellsToRemoveList.end();
1191 if (!it->measObjectEutra.cellsToAddModList.empty())
1194 for (
auto it2 = it->measObjectEutra.cellsToAddModList.begin();
1195 it2 != it->measObjectEutra.cellsToAddModList.end();
1211 if (!it->measObjectEutra.blackCellsToRemoveList.empty())
1216 for (
auto it2 = it->measObjectEutra.blackCellsToRemoveList.begin();
1217 it2 != it->measObjectEutra.blackCellsToRemoveList.end();
1224 if (!it->measObjectEutra.blackCellsToAddModList.empty())
1229 for (
auto it2 = it->measObjectEutra.blackCellsToAddModList.begin();
1230 it2 != it->measObjectEutra.blackCellsToAddModList.end();
1238 std::bitset<1> rangePresent(it2->physCellIdRange.haveRange);
1241 if (it2->physCellIdRange.haveRange)
1243 switch (it2->physCellIdRange.range)
1294 if (it->measObjectEutra.haveCellForWhichToReportCGI)
1325 switch (it->reportConfigEutra.triggerType)
1330 switch (it->reportConfigEutra.purpose)
1344 switch (it->reportConfigEutra.eventId)
1377 switch (it->reportConfigEutra.timeToTrigger)
1441 if (it->reportConfigEutra.reportQuantity ==
1455 switch (it->reportConfigEutra.reportInterval)
1508 switch (it->reportConfigEutra.reportAmount)
1565 std::bitset<4> quantityConfigOpts(0);
1566 quantityConfigOpts.set(3,
true);
1810 std::bitset<3> noncriticalExtension_v1020;
1811 noncriticalExtension_v1020.set(
1814 noncriticalExtension_v1020.set(
1817 noncriticalExtension_v1020.set(
1836 std::bitset<4> sCellToAddMod_r10;
1837 sCellToAddMod_r10.set(3,
true);
1838 sCellToAddMod_r10.set(2,
true);
1839 sCellToAddMod_r10.set(1,
true);
1840 sCellToAddMod_r10.set(
1842 it.haveRadioResourceConfigDedicatedSCell);
1847 std::bitset<2> cellIdentification_r10;
1848 cellIdentification_r10.set(1,
true);
1849 cellIdentification_r10.set(0,
true);
1858 if (it.haveRadioResourceConfigDedicatedSCell)
1872 std::bitset<2> radioResourceConfigCommonSCell_r10;
1880 std::bitset<5> nonUlConfiguration_r10;
1881 nonUlConfiguration_r10.set(4,
true);
1882 nonUlConfiguration_r10.set(3,
true);
1883 nonUlConfiguration_r10.set(2,
false);
1884 nonUlConfiguration_r10.set(1,
true);
1885 nonUlConfiguration_r10.set(0,
false);
1890 std::bitset<1> antennaInfoCommon_r10;
1891 antennaInfoCommon_r10.set(0,
true);
1895 std::bitset<2> pdschConfigCommon_r10;
1896 pdschConfigCommon_r10.set(1,
true);
1897 pdschConfigCommon_r10.set(0,
true);
1907 std::bitset<7> UlConfiguration_r10;
1908 UlConfiguration_r10.set(6,
true);
1909 UlConfiguration_r10.set(5,
false);
1910 UlConfiguration_r10.set(4,
true);
1911 UlConfiguration_r10.set(3,
false);
1912 UlConfiguration_r10.set(2,
false);
1913 UlConfiguration_r10.set(1,
true);
1914 UlConfiguration_r10.set(0,
false);
1918 std::bitset<3> FreqInfo_r10;
1919 FreqInfo_r10.set(2,
true);
1920 FreqInfo_r10.set(1,
true);
1921 FreqInfo_r10.set(0,
false);
1928 std::bitset<2> UlPowerControlCommonSCell_r10;
1929 UlPowerControlCommonSCell_r10.set(1,
false);
1930 UlPowerControlCommonSCell_r10.set(0,
true);
1939 std::bitset<1> prachConfigSCell_r10;
1940 prachConfigSCell_r10.set(0,
true);
1951 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
1952 RadioResourceConfigDedicatedSCell_r10.set(0,
true);
1963 std::bitset<2> pcdscOpt;
1971 std::bitset<4> nulOpt;
1973 nulOpt.set(2,
false);
1974 nulOpt.set(1,
false);
2015 std::bitset<7> ulOpt;
2017 ulOpt.set(5,
false);
2018 ulOpt.set(4,
false);
2019 ulOpt.set(3,
false);
2021 ulOpt.set(1,
false);
2022 ulOpt.set(0,
false);
2095 int thresholdEutraChoice;
2099 switch (thresholdEutraChoice)
2104 thresholdEutra->
range = range;
2110 thresholdEutra->
range = range;
2124 *qOffsetRange = -24;
2127 *qOffsetRange = -22;
2130 *qOffsetRange = -20;
2133 *qOffsetRange = -18;
2136 *qOffsetRange = -16;
2139 *qOffsetRange = -14;
2142 *qOffsetRange = -12;
2145 *qOffsetRange = -10;
2226 std::bitset<6> optionalFieldsPresent = std::bitset<6>();
2229 if (optionalFieldsPresent[5])
2236 if (optionalFieldsPresent[4])
2243 if (optionalFieldsPresent[3])
2249 for (
int i = 0; i < n; i++)
2256 if (optionalFieldsPresent[2])
2262 if (optionalFieldsPresent[1])
2269 if (optionalFieldsPresent[0])
2287 srbToAddModList->clear();
2290 for (
int i = 0; i < numElems; i++)
2295 std::bitset<2> optionalFields;
2303 if (optionalFields[1])
2309 if (optionalFields[0])
2328 srbToAddModList->insert(srbToAddModList->end(), srbToAddMod);
2342 drbToAddModList->clear();
2344 for (
int i = 0; i < n; i++)
2348 std::bitset<5> optionalFields;
2351 if (optionalFields[4])
2361 if (optionalFields[3])
2367 if (optionalFields[2])
2374 std::bitset<0> bitset0;
2425 if (optionalFields[1])
2431 if (optionalFields[0])
2437 drbToAddModList->insert(drbToAddModList->end(), drbToAddMod);
2451 std::bitset<1> bitset1;
2461 logicalChannelConfig->
priority = n;
2465 uint16_t prioritizedBitRateKbps;
2470 prioritizedBitRateKbps = 0;
2473 prioritizedBitRateKbps = 8;
2476 prioritizedBitRateKbps = 16;
2479 prioritizedBitRateKbps = 32;
2482 prioritizedBitRateKbps = 64;
2485 prioritizedBitRateKbps = 128;
2488 prioritizedBitRateKbps = 256;
2491 prioritizedBitRateKbps = 10000;
2494 prioritizedBitRateKbps = 10000;
2500 uint16_t bucketSizeDurationMs;
2504 bucketSizeDurationMs = 50;
2507 bucketSizeDurationMs = 100;
2510 bucketSizeDurationMs = 150;
2513 bucketSizeDurationMs = 300;
2516 bucketSizeDurationMs = 500;
2519 bucketSizeDurationMs = 1000;
2522 bucketSizeDurationMs = 1000;
2541 std::bitset<10> optionalFieldPresent;
2545 if (optionalFieldPresent[9])
2548 std::bitset<0> bitset0;
2559 if (optionalFieldPresent[8])
2564 if (optionalFieldPresent[7])
2569 if (optionalFieldPresent[6])
2574 if (optionalFieldPresent[5])
2579 if (optionalFieldPresent[4])
2584 if (optionalFieldPresent[3])
2590 if (optionalFieldPresent[2])
2609 std::bitset<0> bitset0;
2640 if (optionalFieldPresent[1])
2651 std::bitset<1> codebookSubsetRestrictionPresent;
2658 if (codebookSubsetRestrictionPresent[0])
2664 int txantennaselchosen;
2666 if (txantennaselchosen == 0)
2671 else if (txantennaselchosen == 1)
2678 if (optionalFieldPresent[0])
2690 NS_FATAL_ERROR(
"RrcAsn1Header Print() function must also specify "
2691 "LteRrcSap::RadioResourceConfigDedicated as a second argument");
2700 std::bitset<2> nonCriticalExtension_v890;
2703 if (nonCriticalExtension_v890[0])
2706 std::bitset<3> nonCriticalExtension_v920;
2708 if (nonCriticalExtension_v920[0])
2711 std::bitset<3> nonCriticalExtension_v1020;
2714 if (nonCriticalExtension_v1020[2])
2722 for (
int i = 0; i < numElems; i++)
2731 if (nonCriticalExtension_v1020[1])
2739 for (
int i = 0; i < numElems; i++)
2741 std::bitset<4> sCellToAddMod_r10;
2759 if (sCellToAddMod_r10[0])
2776 NS_ASSERT(!nonCriticalExtension_v1020[0]);
2789 std::bitset<2> cellIdentification_r10;
2809 std::bitset<2> radioResourceConfigCommonSCell_r10;
2815 std::bitset<5> nonUlConfiguration_r10;
2821 std::bitset<1> antennaInfoCommon_r10;
2826 std::bitset<2> pdschConfigCommon_r10;
2835 std::bitset<7> UlConfiguration_r10;
2838 std::bitset<3> FreqInfo_r10;
2846 std::bitset<2> UlPowerControlCommonSCell_r10;
2851 std::bitset<1> prachConfigSCell_r10;
2866 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
2867 bIterator =
DeserializeSequence(&RadioResourceConfigDedicatedSCell_r10,
false, bIterator);
2880 std::bitset<2> pcdscOpt;
2886 std::bitset<4> nulOpt;
2904 std::bitset<1> codebookSubsetRestrictionPresent;
2912 if (codebookSubsetRestrictionPresent[0])
2919 int txantennaselchosen;
2921 if (txantennaselchosen == 0)
2926 else if (txantennaselchosen == 1)
2937 std::bitset<0> bitset0;
2951 std::bitset<7> ulOpt;
2972 std::bitset<1> codebookSubsetRestrictionPresent;
2980 if (codebookSubsetRestrictionPresent[0])
2987 int txantennaselchosen;
2989 if (txantennaselchosen == 0)
2994 else if (txantennaselchosen == 1)
3021 std::bitset<0> bitset0;
3060 os <<
" srbToAddModList: " << std::endl;
3062 for (; it != radioResourceConfigDedicated.
srbToAddModList.end(); it++)
3064 os <<
" srbIdentity: " << (int)it->srbIdentity << std::endl;
3065 os <<
" logicalChannelConfig: " << std::endl;
3066 os <<
" priority: " << (
int)it->logicalChannelConfig.priority << std::endl;
3067 os <<
" prioritizedBitRateKbps: "
3068 << (int)it->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
3069 os <<
" bucketSizeDurationMs: "
3070 << (
int)it->logicalChannelConfig.bucketSizeDurationMs << std::endl;
3071 os <<
" logicalChannelGroup: " << (int)it->logicalChannelConfig.logicalChannelGroup
3076 os <<
" drbToAddModList: " << std::endl;
3078 for (; it2 != radioResourceConfigDedicated.
drbToAddModList.end(); it2++)
3080 os <<
" epsBearerIdentity: " << (int)it2->epsBearerIdentity << std::endl;
3081 os <<
" drbIdentity: " << (
int)it2->drbIdentity << std::endl;
3082 os <<
" rlcConfig: " << it2->rlcConfig.choice << std::endl;
3083 os <<
" logicalChannelIdentity: " << (int)it2->logicalChannelIdentity << std::endl;
3084 os <<
" logicalChannelConfig: " << std::endl;
3085 os <<
" priority: " << (
int)it2->logicalChannelConfig.priority << std::endl;
3086 os <<
" prioritizedBitRateKbps: "
3087 << (int)it2->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
3088 os <<
" bucketSizeDurationMs: "
3089 << (
int)it2->logicalChannelConfig.bucketSizeDurationMs << std::endl;
3090 os <<
" logicalChannelGroup: " << (int)it2->logicalChannelConfig.logicalChannelGroup
3095 os <<
" drbToReleaseList: ";
3099 os << (int)*it3 <<
", ";
3103 os <<
" havePhysicalConfigDedicated: "
3108 os <<
" physicalConfigDedicated: " << std::endl;
3110 os <<
" haveSoundingRsUlConfigDedicated: "
3115 os <<
" soundingRsUlConfigDedicated: " << std::endl;
3120 os <<
" srsBandwidth: "
3124 os <<
" srsConfigIndex: "
3130 os <<
" haveAntennaInfoDedicated: "
3135 os <<
" antennaInfo Tx mode: "
3148 std::bitset<0> bitset0;
3151 std::bitset<3> sysInfoBlkT1Opts;
3155 std::bitset<1> cellAccessRelatedInfoOpts;
3159 int numPlmnIdentityInfoElements;
3161 for (
int i = 0; i < numPlmnIdentityInfoElements; i++)
3172 std::bitset<16> trackingAreaCode;
3176 std::bitset<28> cellIdentity;
3191 if (cellAccessRelatedInfoOpts[0])
3194 std::bitset<27> csgIdentity;
3200 std::bitset<1> qRxLevMinOffsetPresent;
3203 if (qRxLevMinOffsetPresent[0])
3209 if (sysInfoBlkT1Opts[2])
3219 int numSchedulingInfo;
3221 for (
int i = 0; i < numSchedulingInfo; i++)
3228 for (
int j = 0; j < numSibType; j++)
3234 if (sysInfoBlkT1Opts[1])
3246 if (sysInfoBlkT1Opts[0])
3259 std::bitset<0> bitset0;
3262 std::bitset<2> sysInfoBlkT2Opts;
3264 if (sysInfoBlkT2Opts[1])
3285 std::bitset<2> freqInfoOpts;
3287 if (freqInfoOpts[1])
3293 if (freqInfoOpts[0])
3303 if (sysInfoBlkT2Opts[0])
3320 std::bitset<0> bitset0;
3323 std::bitset<9> rrCfgCommOptions;
3327 if (rrCfgCommOptions[8])
3334 std::bitset<1> prachConfigInfoPresent;
3341 if (prachConfigInfoPresent[0])
3347 if (rrCfgCommOptions[7])
3388 if (rrCfgCommOptions[6])
3394 if (rrCfgCommOptions[5])
3400 if (rrCfgCommOptions[4])
3406 if (rrCfgCommOptions[3])
3412 if (rrCfgCommOptions[2])
3418 if (rrCfgCommOptions[1])
3424 if (rrCfgCommOptions[0])
3439 std::bitset<0> bitset0;
3445 std::bitset<1> preamblesGroupAConfigPresent;
3504 if (preamblesGroupAConfigPresent[0])
3619 std::bitset<0> bitset0;
3638 std::bitset<1> prachConfigInfoPresent;
3643 if (prachConfigInfoPresent[0])
3732 std::bitset<4> measResultOptionalPresent;
3755 int measResultNeighCellsChoice;
3758 bIterator =
DeserializeChoice(4,
false, &measResultNeighCellsChoice, bIterator);
3760 if (measResultNeighCellsChoice == 0)
3766 for (
int i = 0; i < numElems; i++)
3770 std::bitset<1> isCgiInfoPresent;
3777 measResultEutra.
haveCgiInfo = isCgiInfoPresent[0];
3778 if (isCgiInfoPresent[0])
3780 std::bitset<1> havePlmnIdentityList;
3791 std::bitset<28> cellId;
3796 std::bitset<16> trArCo;
3801 if (havePlmnIdentityList[0])
3806 for (
int j = 0; j < numPlmnElems; j++)
3816 std::bitset<2> measResultOpts;
3820 if (measResultOpts[1])
3828 if (measResultOpts[0])
3839 if (measResultNeighCellsChoice == 1)
3845 if (measResultNeighCellsChoice == 2)
3850 if (measResultNeighCellsChoice == 3)
3860 for (
int i = 0; i < numElems; i++)
3865 std::bitset<2> measResultScellPresent;
3910 std::bitset<1> isMccPresent;
3913 if (isMccPresent[0])
3924 for (
int j = mncDigits - 1; j >= 0; j--)
3927 mnc += n * pow(10, j);
3940 std::bitset<0> bitset0;
3941 std::bitset<2> bitset2;
3942 std::bitset<11> bitset11;
3951 int measObjectToRemoveListElems;
3955 for (
int i = 0; i < measObjectToRemoveListElems; i++)
3965 int measObjectToAddModListElems;
3969 for (
int i = 0; i < measObjectToAddModListElems; i++)
3978 int measObjectChoice;
3981 switch (measObjectChoice)
4001 std::bitset<5> measObjectEutraOpts;
4023 if (measObjectEutraOpts[4])
4029 for (
int i = 0; i < numElems; i++)
4036 if (measObjectEutraOpts[3])
4042 for (
int i = 0; i < numElems; i++)
4064 if (measObjectEutraOpts[2])
4070 for (
int i = 0; i < numElems; i++)
4077 if (measObjectEutraOpts[1])
4083 for (
int i = 0; i < numElems; i++)
4092 std::bitset<1> isRangePresent;
4160 if (measObjectEutraOpts[0])
4174 int reportConfigToRemoveListElems;
4180 for (
int i = 0; i < reportConfigToRemoveListElems; i++)
4190 int reportConfigToAddModListElems;
4196 for (
int i = 0; i < reportConfigToAddModListElems; i++)
4205 int reportConfigChoice;
4208 if (reportConfigChoice == 0)
4214 int triggerTypeChoice;
4217 if (triggerTypeChoice == 0)
4227 switch (eventIdChoice)
4327 if (triggerTypeChoice == 1)
4456 if (reportConfigChoice == 1)
4469 int measIdToRemoveListElems;
4472 for (
int i = 0; i < measIdToRemoveListElems; i++)
4482 int measIdToAddModListElems;
4485 for (
int i = 0; i < measIdToAddModListElems; i++)
4508 std::bitset<4> quantityConfigOpts;
4511 if (quantityConfigOpts[3])
4624 if (quantityConfigOpts[2])
4629 if (quantityConfigOpts[1])
4634 if (quantityConfigOpts[0])
4645 int measGapConfigChoice;
4647 switch (measGapConfigChoice)
4658 int gapOffsetChoice;
4660 switch (gapOffsetChoice)
4694 int speedStateParsChoice;
4696 switch (speedStateParsChoice)
4775 m_mmec = std::bitset<8>(0UL);
4776 m_mTmsi = std::bitset<32>(0UL);
4778 m_spare = std::bitset<1>(0UL);
4797 os <<
"MMEC:" <<
m_mmec << std::endl;
4798 os <<
"MTMSI:" <<
m_mTmsi << std::endl;
4800 os <<
"Spare: " <<
m_spare << std::endl;
4849 std::bitset<1> dummy;
4850 std::bitset<0> optionalOrDefaultMask;
4927 os <<
"radioResourceConfigDedicated:" << std::endl;
4975 std::bitset<0> bitset0;
4976 std::bitset<1> bitset1;
4977 std::bitset<2> bitset2;
4991 int criticalExtensionChoice;
4993 if (criticalExtensionChoice == 1)
4998 else if (criticalExtensionChoice == 0)
5062 std::list<LteRrcSap::SrbToAddMod>
5068 std::list<LteRrcSap::DrbToAddMod>
5134 std::bitset<0> bitset0;
5237 std::bitset<0> bitset0;
5324 std::bitset<6> options;
5327 options.set(3,
false);
5329 options.set(1,
false);
5344 std::bitset<4> mobCtrlIntoOptional;
5347 mobCtrlIntoOptional.set(1,
false);
5399 std::bitset<2> noncriticalExtension_v890;
5400 noncriticalExtension_v890.set(1,
false);
5401 noncriticalExtension_v890.set(
5410 std::bitset<3> noncriticalExtension_v920;
5411 noncriticalExtension_v920.set(1,
false);
5412 noncriticalExtension_v920.set(1,
false);
5414 noncriticalExtension_v920.set(
5431 std::bitset<0> bitset0;
5460 else if (c1Chosen == 0)
5463 std::bitset<6> rrcConnRecOpts;
5476 std::bitset<4> mobCtrlOpts;
5487 std::bitset<1> ulCarrierFreqPresent;
5493 if (ulCarrierFreqPresent[0])
5504 std::bitset<1> ulBandwidthPresent;
5510 if (ulBandwidthPresent[0])
5527 std::bitset<16> cRnti;
5548 if (rrcConnRecOpts[3])
5562 if (rrcConnRecOpts[1])
5590 os <<
" measObjectToRemoveList: ";
5592 auto it = auxList.begin();
5593 for (; it != auxList.end(); it++)
5595 os << (int)*it <<
", ";
5601 os <<
" reportConfigToRemoveList: ";
5603 auto it = auxList.begin();
5604 for (; it != auxList.end(); it++)
5606 os << (int)*it <<
", ";
5612 os <<
" measIdToRemoveList: ";
5614 auto it = auxList.begin();
5615 for (; it != auxList.end(); it++)
5617 os << (int)*it <<
", ";
5624 os <<
" measObjectToAddMod: " << std::endl;
5626 auto it = auxList.begin();
5627 for (; it != auxList.end(); it++)
5629 os <<
" measObjectId: " << (int)it->measObjectId << std::endl;
5630 os <<
" carrierFreq: " << (
int)it->measObjectEutra.carrierFreq << std::endl;
5631 os <<
" allowedMeasBandwidth: " << (int)it->measObjectEutra.allowedMeasBandwidth
5633 os <<
" presenceAntennaPort1: " << it->measObjectEutra.presenceAntennaPort1
5635 os <<
" neighCellConfig: " << (
int)it->measObjectEutra.neighCellConfig
5637 os <<
" offsetFreq: " << (int)it->measObjectEutra.offsetFreq << std::endl;
5639 if (!it->measObjectEutra.cellsToRemoveList.empty())
5641 os <<
" cellsToRemoveList: ";
5642 std::list<uint8_t> auxList = it->measObjectEutra.cellsToRemoveList;
5643 auto it = auxList.begin();
5644 for (; it != auxList.end(); it++)
5646 os << (int)*it <<
", ";
5651 if (!it->measObjectEutra.blackCellsToRemoveList.empty())
5653 os <<
" blackCellsToRemoveList: ";
5654 std::list<uint8_t> auxList = it->measObjectEutra.blackCellsToRemoveList;
5655 auto it = auxList.begin();
5656 for (; it != auxList.end(); it++)
5658 os << (int)*it <<
", ";
5663 if (!it->measObjectEutra.cellsToAddModList.empty())
5665 os <<
" cellsToAddModList: " << std::endl;
5666 std::list<LteRrcSap::CellsToAddMod> auxList =
5667 it->measObjectEutra.cellsToAddModList;
5668 auto it = auxList.begin();
5669 for (; it != auxList.end(); it++)
5671 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5672 os <<
" physCellId: " << (
int)it->physCellId << std::endl;
5673 os <<
" cellIndividualOffset: " << (int)it->cellIndividualOffset
5675 os <<
" ------ " << std::endl;
5679 if (!it->measObjectEutra.blackCellsToAddModList.empty())
5681 os <<
" blackCellsToAddModList: " << std::endl;
5682 std::list<LteRrcSap::BlackCellsToAddMod> auxList =
5683 it->measObjectEutra.blackCellsToAddModList;
5684 auto it = auxList.begin();
5685 for (; it != auxList.end(); it++)
5687 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5688 os <<
" physCellIdRange.start: " << (
int)it->physCellIdRange.start
5690 os <<
" physCellIdRange.haveRange: " << it->physCellIdRange.haveRange
5692 os <<
" physCellIdRange.range: " << (int)it->physCellIdRange.range
5694 os <<
" ------ " << std::endl;
5698 os <<
" haveCellForWhichToReportCGI: "
5699 << it->measObjectEutra.haveCellForWhichToReportCGI << std::endl;
5700 os <<
" cellForWhichToReportCGI: "
5701 << (int)it->measObjectEutra.cellForWhichToReportCGI << std::endl;
5702 os <<
" ------------- " << std::endl;
5708 os <<
" reportConfigToAddModList: " << std::endl;
5709 std::list<LteRrcSap::ReportConfigToAddMod> auxList =
5711 auto it = auxList.begin();
5712 for (; it != auxList.end(); it++)
5714 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5715 os <<
" reportConfigEutra.triggerType "
5716 << (
int)it->reportConfigEutra.triggerType << std::endl;
5719 os <<
" reportConfigEutra.eventId " << (int)it->reportConfigEutra.eventId
5723 os <<
" reportConfigEutra.reportOnLeave "
5724 << (int)it->reportConfigEutra.reportOnLeave << std::endl;
5725 os <<
" reportConfigEutra.a3Offset "
5726 << (
int)it->reportConfigEutra.a3Offset << std::endl;
5730 os <<
" reportConfigEutra.threshold1.choice "
5731 << (int)it->reportConfigEutra.threshold1.choice << std::endl;
5732 os <<
" reportConfigEutra.threshold1.range "
5733 << (
int)it->reportConfigEutra.threshold1.range << std::endl;
5736 os <<
" reportConfigEutra.threshold2.choice "
5737 << (int)it->reportConfigEutra.threshold2.choice << std::endl;
5738 os <<
" reportConfigEutra.threshold2.range "
5739 << (
int)it->reportConfigEutra.threshold2.range << std::endl;
5742 os <<
" reportConfigEutra.hysteresis "
5743 << (int)it->reportConfigEutra.hysteresis << std::endl;
5744 os <<
" reportConfigEutra.timeToTrigger "
5745 << (
int)it->reportConfigEutra.timeToTrigger << std::endl;
5749 os <<
" reportConfigEutra.purpose " << (int)it->reportConfigEutra.purpose
5752 os <<
" reportConfigEutra.triggerQuantity "
5753 << (int)it->reportConfigEutra.triggerQuantity << std::endl;
5754 os <<
" reportConfigEutra.reportQuantity "
5755 << (
int)it->reportConfigEutra.reportQuantity << std::endl;
5756 os <<
" reportConfigEutra.maxReportCells "
5757 << (int)it->reportConfigEutra.maxReportCells << std::endl;
5758 os <<
" reportConfigEutra.reportInterval "
5759 << (
int)it->reportConfigEutra.reportInterval << std::endl;
5760 os <<
" reportConfigEutra.reportAmount "
5761 << (int)it->reportConfigEutra.reportAmount << std::endl;
5767 os <<
" measIdToAddModList: " << std::endl;
5769 auto it = auxList.begin();
5770 for (; it != auxList.end(); it++)
5772 os <<
" measId: " << (int)it->measId << std::endl;
5773 os <<
" measObjectId: " << (
int)it->measObjectId << std::endl;
5774 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5775 os <<
" ------ " << std::endl;
5782 os <<
" filterCoefficientRSRP: "
5784 os <<
" filterCoefficientRSRQ:"
5792 os <<
" measGapConfig.gap (gap0/1,value): ("
5807 os <<
" speedStatePars.mobilityStateParameters.tEvaluation: "
5809 os <<
" speedStatePars.mobilityStateParameters.tHystNormal: "
5811 os <<
" speedStatePars.mobilityStateParameters.nCellChangeMedium: "
5814 os <<
" speedStatePars.mobilityStateParameters.nCellChangeHigh: "
5817 os <<
" speedStatePars.timeToTriggerSf.sfMedium: "
5819 os <<
" speedStatePars.timeToTriggerSf.sfHigh: "
5831 os <<
" carrierFreq.dlCarrierFreq: "
5833 os <<
" carrierFreq.dlCarrierFreq: "
5839 os <<
" carrierBandwidth.dlBandwidth: "
5841 os <<
" carrierBandwidth.ulBandwidth: "
5849 os <<
"raPreambleIndex: "
5851 os <<
"raPrachMaskIndex: "
5956 std::list<LteRrcSap::SrbToAddMod>
5962 std::list<LteRrcSap::DrbToAddMod>
6005 std::bitset<4> handoverPrepInfoOpts;
6006 handoverPrepInfoOpts.set(3,
true);
6007 handoverPrepInfoOpts.set(2,
false);
6008 handoverPrepInfoOpts.set(1,
false);
6009 handoverPrepInfoOpts.set(0,
false);
6066 std::bitset<0> bitset0;
6074 int criticalExtensionsChosen;
6077 if (criticalExtensionsChosen == 1)
6082 else if (criticalExtensionsChosen == 0)
6091 else if (c1Chosen == 0)
6094 std::bitset<4> handoverPrepInfoOpts;
6099 for (
int i = 0; i < n; i++)
6105 if (handoverPrepInfoOpts[3])
6124 std::bitset<16> cRnti;
6139 std::bitset<8> systemFrameNumber;
6142 systemFrameNumber.to_ulong();
6144 std::bitset<10> spare;
6165 if (handoverPrepInfoOpts[2])
6170 if (handoverPrepInfoOpts[1])
6175 if (handoverPrepInfoOpts[0])
6194 os <<
"plmnIdentityInfo.plmnIdentity: "
6198 os <<
"cellAccessRelatedInfo.cellIdentity "
6201 os <<
"cellAccessRelatedInfo.csgIndication: "
6204 os <<
"cellAccessRelatedInfo.csgIdentity: "
6296 std::bitset<0> bitset0;
6321 std::bitset<16> cRnti;
6331 std::bitset<16> shortMacI;
6353 std::bitset<2> spare;
6446 std::bitset<0> bitset0;
6460 int criticalExtensionsChoice;
6462 if (criticalExtensionsChoice == 1)
6467 else if (criticalExtensionsChoice == 0)
6480 std::bitset<1> nonCriticalExtensionPresent;
6499 os <<
"RadioResourceConfigDedicated: " << std::endl;
6567 std::bitset<0> bitset0;
6581 int criticalExtensionsChoice;
6583 if (criticalExtensionsChoice == 1)
6588 else if (criticalExtensionsChoice == 0)
6591 std::bitset<1> opts;
6667 std::bitset<0> bitset0;
6676 int criticalExtensionsChoice;
6678 if (criticalExtensionsChoice == 1)
6683 else if (criticalExtensionsChoice == 0)
6686 std::bitset<1> opts;
6762 std::bitset<0> bitset0;
6776 int criticalExtensionsChoice;
6778 if (criticalExtensionsChoice == 1)
6783 else if (criticalExtensionsChoice == 0)
6792 std::bitset<3> opts;
6884 std::bitset<0> bitset0;
6894 int criticalExtensionsChoice;
6896 if (criticalExtensionsChoice == 1)
6901 else if (criticalExtensionsChoice == 0)
6911 else if (c1Choice == 0)
6914 std::bitset<1> opts;
6994 std::bitset<0> bitset0;
7000 int criticalExtensionsChoice;
7003 if (criticalExtensionsChoice == 1)
7008 else if (criticalExtensionsChoice == 0)
7021 std::bitset<1> isNonCriticalExtensionPresent;
7027 if (isNonCriticalExtensionPresent[0])
7046 os <<
"haveMeasResultNeighCells = "
7051 std::list<LteRrcSap::MeasResultEutra> measResultListEutra =
7053 auto it = measResultListEutra.begin();
7054 for (; it != measResultListEutra.end(); it++)
7056 os <<
" physCellId =" << (int)it->physCellId << std::endl;
7057 os <<
" haveCgiInfo =" << it->haveCgiInfo << std::endl;
7058 if (it->haveCgiInfo)
7060 os <<
" plmnIdentity = " << (int)it->cgiInfo.plmnIdentity << std::endl;
7061 os <<
" cellIdentity = " << (
int)it->cgiInfo.cellIdentity << std::endl;
7062 os <<
" trackingAreaCode = " << (int)it->cgiInfo.trackingAreaCode << std::endl;
7063 os <<
" havePlmnIdentityList = " << !it->cgiInfo.plmnIdentityList.empty()
7065 if (!it->cgiInfo.plmnIdentityList.empty())
7067 for (
auto it2 = it->cgiInfo.plmnIdentityList.begin();
7068 it2 != it->cgiInfo.plmnIdentityList.end();
7071 os <<
" plmnId : " << *it2 << std::endl;
7076 os <<
" haveRsrpResult =" << it->haveRsrpResult << std::endl;
7077 if (it->haveRsrpResult)
7079 os <<
" rsrpResult =" << (int)it->rsrpResult << std::endl;
7082 os <<
" haveRsrqResult =" << it->haveRsrqResult << std::endl;
7083 if (it->haveRsrqResult)
7085 os <<
" rsrqResult =" << (int)it->rsrqResult << std::endl;
7126 std::cout <<
"UL DCCH MSG TYPE: " <<
m_messageType << std::endl;
7138 std::bitset<0> bitset0;
7188 std::cout <<
"DL DCCH MSG TYPE: " <<
m_messageType << std::endl;
7200 std::bitset<0> bitset0;
7250 std::cout <<
"UL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7262 std::bitset<0> bitset0;
7312 std::cout <<
"DL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7324 std::bitset<0> bitset0;
iterator in a Buffer instance
automatically resized byte buffer
void PreSerialize() const override
This function serializes class attributes to m_serializationResult local Buffer.
void Print(std::ostream &os) const override
This function prints the object, for debugging purposes.
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 override
This function prints the object, for debugging purposes.
void PreSerialize() const override
This function serializes class attributes to m_serializationResult local Buffer.
~RrcDlCcchMessage() override
void SerializeDlCcchMessage(int msgType) const
Serialize DL CCCH message function.
void SerializeDlDcchMessage(int msgType) const
Serialize DL DCCH message function.
void PreSerialize() const override
This function serializes class attributes to m_serializationResult local Buffer.
void Print(std::ostream &os) const override
This function prints the object, for debugging purposes.
~RrcDlDcchMessage() override
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.
~RrcUlCcchMessage() override
void Print(std::ostream &os) const override
This function prints the object, for debugging purposes.
void PreSerialize() const override
This function serializes class attributes to m_serializationResult local Buffer.
Buffer::Iterator DeserializeUlDcchMessage(Buffer::Iterator bIterator)
Deserialize UL DCCH message function.
void Print(std::ostream &os) const override
This function prints the object, for debugging purposes.
void PreSerialize() const override
This function serializes class attributes to m_serializationResult local Buffer.
~RrcUlDcchMessage() override
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?
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.
@ BOTH
Both the RSRP and RSRQ quantities are to be included in the measurement report.
@ SAME_AS_TRIGGER_QUANTITY
uint8_t hysteresis
Parameter used within the entry and leave condition of an event triggered reporting condition.
@ PERIODICAL
periodical report
uint8_t reportAmount
Number of measurement reports applicable, always assumed to be infinite.
ThresholdEutra threshold2
Threshold for event A5.
enum ns3::LteRrcSap::ReportConfigEutra::@63 triggerType
Trigger enumeration.
enum ns3::LteRrcSap::ReportConfigEutra::@66 reportQuantity
Report type enumeration.
enum ns3::LteRrcSap::ReportConfigEutra::@64 eventId
Event enumeration.
@ 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...
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5.
enum ns3::LteRrcSap::ReportConfigEutra::@67 reportInterval
Report interval enumeration.
enum ns3::LteRrcSap::ReportConfigEutra::@65 triggerQuantity
Trigger type enumeration.
@ RSRP
Reference Signal Received Power.
@ RSRQ
Reference Signal Received Quality.
int8_t a3Offset
Offset value for Event A3.
uint16_t timeToTrigger
Time during which specific criteria for the event needs to be met in order to trigger a measurement r...
ReportConfigToAddMod structure.
uint8_t reportConfigId
report config ID
ReportConfigEutra reportConfigEutra
report config eutra
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.
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
uint16_t srsConfigIndex
SRS config index.
uint16_t srsBandwidth
SRS bandwidth.
SpeedStateScaleFactors timeToTriggerSf
time to trigger scale factors
MobilityStateParameters mobilityStateParameters
mobility state parameters
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.
enum ns3::LteRrcSap::ThresholdEutra::@62 choice
Threshold enumeration.
@ 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.
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