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
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)
3999 std::bitset<5> measObjectEutraOpts;
4021 if (measObjectEutraOpts[4])
4027 for (
int i = 0; i < numElems; i++)
4034 if (measObjectEutraOpts[3])
4040 for (
int i = 0; i < numElems; i++)
4062 if (measObjectEutraOpts[2])
4068 for (
int i = 0; i < numElems; i++)
4075 if (measObjectEutraOpts[1])
4081 for (
int i = 0; i < numElems; i++)
4090 std::bitset<1> isRangePresent;
4158 if (measObjectEutraOpts[0])
4172 int reportConfigToRemoveListElems;
4178 for (
int i = 0; i < reportConfigToRemoveListElems; i++)
4188 int reportConfigToAddModListElems;
4194 for (
int i = 0; i < reportConfigToAddModListElems; i++)
4203 int reportConfigChoice;
4206 if (reportConfigChoice == 0)
4212 int triggerTypeChoice;
4215 if (triggerTypeChoice == 0)
4225 switch (eventIdChoice)
4325 if (triggerTypeChoice == 1)
4454 if (reportConfigChoice == 1)
4467 int measIdToRemoveListElems;
4470 for (
int i = 0; i < measIdToRemoveListElems; i++)
4480 int measIdToAddModListElems;
4483 for (
int i = 0; i < measIdToAddModListElems; i++)
4506 std::bitset<4> quantityConfigOpts;
4509 if (quantityConfigOpts[3])
4622 if (quantityConfigOpts[2])
4627 if (quantityConfigOpts[1])
4632 if (quantityConfigOpts[0])
4643 int measGapConfigChoice;
4645 switch (measGapConfigChoice)
4656 int gapOffsetChoice;
4658 switch (gapOffsetChoice)
4692 int speedStateParsChoice;
4694 switch (speedStateParsChoice)
4773 m_mmec = std::bitset<8>(0UL);
4774 m_mTmsi = std::bitset<32>(0UL);
4776 m_spare = std::bitset<1>(0UL);
4795 os <<
"MMEC:" <<
m_mmec << std::endl;
4796 os <<
"MTMSI:" <<
m_mTmsi << std::endl;
4798 os <<
"Spare: " <<
m_spare << std::endl;
4847 std::bitset<1> dummy;
4848 std::bitset<0> optionalOrDefaultMask;
4925 os <<
"radioResourceConfigDedicated:" << std::endl;
4973 std::bitset<0> bitset0;
4974 std::bitset<1> bitset1;
4975 std::bitset<2> bitset2;
4989 int criticalExtensionChoice;
4991 if (criticalExtensionChoice == 1)
4996 else if (criticalExtensionChoice == 0)
5060std::list<LteRrcSap::SrbToAddMod>
5066std::list<LteRrcSap::DrbToAddMod>
5132 std::bitset<0> bitset0;
5235 std::bitset<0> bitset0;
5322 std::bitset<6> options;
5325 options.set(3,
false);
5327 options.set(1,
false);
5342 std::bitset<4> mobCtrlIntoOptional;
5345 mobCtrlIntoOptional.set(1,
false);
5397 std::bitset<2> noncriticalExtension_v890;
5398 noncriticalExtension_v890.set(1,
false);
5399 noncriticalExtension_v890.set(
5408 std::bitset<3> noncriticalExtension_v920;
5409 noncriticalExtension_v920.set(1,
false);
5410 noncriticalExtension_v920.set(1,
false);
5412 noncriticalExtension_v920.set(
5429 std::bitset<0> bitset0;
5458 else if (c1Chosen == 0)
5461 std::bitset<6> rrcConnRecOpts;
5474 std::bitset<4> mobCtrlOpts;
5485 std::bitset<1> ulCarrierFreqPresent;
5491 if (ulCarrierFreqPresent[0])
5502 std::bitset<1> ulBandwidthPresent;
5508 if (ulBandwidthPresent[0])
5525 std::bitset<16> cRnti;
5546 if (rrcConnRecOpts[3])
5560 if (rrcConnRecOpts[1])
5588 os <<
" measObjectToRemoveList: ";
5590 auto it = auxList.begin();
5591 for (; it != auxList.end(); it++)
5593 os << (int)*it <<
", ";
5599 os <<
" reportConfigToRemoveList: ";
5601 auto it = auxList.begin();
5602 for (; it != auxList.end(); it++)
5604 os << (int)*it <<
", ";
5610 os <<
" measIdToRemoveList: ";
5612 auto it = auxList.begin();
5613 for (; it != auxList.end(); it++)
5615 os << (int)*it <<
", ";
5622 os <<
" measObjectToAddMod: " << std::endl;
5624 auto it = auxList.begin();
5625 for (; it != auxList.end(); it++)
5627 os <<
" measObjectId: " << (int)it->measObjectId << std::endl;
5628 os <<
" carrierFreq: " << (
int)it->measObjectEutra.carrierFreq << std::endl;
5629 os <<
" allowedMeasBandwidth: " << (int)it->measObjectEutra.allowedMeasBandwidth
5631 os <<
" presenceAntennaPort1: " << it->measObjectEutra.presenceAntennaPort1
5633 os <<
" neighCellConfig: " << (
int)it->measObjectEutra.neighCellConfig
5635 os <<
" offsetFreq: " << (int)it->measObjectEutra.offsetFreq << std::endl;
5637 if (!it->measObjectEutra.cellsToRemoveList.empty())
5639 os <<
" cellsToRemoveList: ";
5640 std::list<uint8_t> auxList = it->measObjectEutra.cellsToRemoveList;
5641 auto it = auxList.begin();
5642 for (; it != auxList.end(); it++)
5644 os << (int)*it <<
", ";
5649 if (!it->measObjectEutra.blackCellsToRemoveList.empty())
5651 os <<
" blackCellsToRemoveList: ";
5652 std::list<uint8_t> auxList = it->measObjectEutra.blackCellsToRemoveList;
5653 auto it = auxList.begin();
5654 for (; it != auxList.end(); it++)
5656 os << (int)*it <<
", ";
5661 if (!it->measObjectEutra.cellsToAddModList.empty())
5663 os <<
" cellsToAddModList: " << std::endl;
5664 std::list<LteRrcSap::CellsToAddMod> auxList =
5665 it->measObjectEutra.cellsToAddModList;
5666 auto it = auxList.begin();
5667 for (; it != auxList.end(); it++)
5669 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5670 os <<
" physCellId: " << (
int)it->physCellId << std::endl;
5671 os <<
" cellIndividualOffset: " << (int)it->cellIndividualOffset
5673 os <<
" ------ " << std::endl;
5677 if (!it->measObjectEutra.blackCellsToAddModList.empty())
5679 os <<
" blackCellsToAddModList: " << std::endl;
5680 std::list<LteRrcSap::BlackCellsToAddMod> auxList =
5681 it->measObjectEutra.blackCellsToAddModList;
5682 auto it = auxList.begin();
5683 for (; it != auxList.end(); it++)
5685 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5686 os <<
" physCellIdRange.start: " << (
int)it->physCellIdRange.start
5688 os <<
" physCellIdRange.haveRange: " << it->physCellIdRange.haveRange
5690 os <<
" physCellIdRange.range: " << (int)it->physCellIdRange.range
5692 os <<
" ------ " << std::endl;
5696 os <<
" haveCellForWhichToReportCGI: "
5697 << it->measObjectEutra.haveCellForWhichToReportCGI << std::endl;
5698 os <<
" cellForWhichToReportCGI: "
5699 << (int)it->measObjectEutra.cellForWhichToReportCGI << std::endl;
5700 os <<
" ------------- " << std::endl;
5706 os <<
" reportConfigToAddModList: " << std::endl;
5707 std::list<LteRrcSap::ReportConfigToAddMod> auxList =
5709 auto it = auxList.begin();
5710 for (; it != auxList.end(); it++)
5712 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5713 os <<
" reportConfigEutra.triggerType "
5714 << (
int)it->reportConfigEutra.triggerType << std::endl;
5717 os <<
" reportConfigEutra.eventId " << (int)it->reportConfigEutra.eventId
5721 os <<
" reportConfigEutra.reportOnLeave "
5722 << (int)it->reportConfigEutra.reportOnLeave << std::endl;
5723 os <<
" reportConfigEutra.a3Offset "
5724 << (
int)it->reportConfigEutra.a3Offset << std::endl;
5728 os <<
" reportConfigEutra.threshold1.choice "
5729 << (int)it->reportConfigEutra.threshold1.choice << std::endl;
5730 os <<
" reportConfigEutra.threshold1.range "
5731 << (
int)it->reportConfigEutra.threshold1.range << std::endl;
5734 os <<
" reportConfigEutra.threshold2.choice "
5735 << (int)it->reportConfigEutra.threshold2.choice << std::endl;
5736 os <<
" reportConfigEutra.threshold2.range "
5737 << (
int)it->reportConfigEutra.threshold2.range << std::endl;
5740 os <<
" reportConfigEutra.hysteresis "
5741 << (int)it->reportConfigEutra.hysteresis << std::endl;
5742 os <<
" reportConfigEutra.timeToTrigger "
5743 << (
int)it->reportConfigEutra.timeToTrigger << std::endl;
5747 os <<
" reportConfigEutra.purpose " << (int)it->reportConfigEutra.purpose
5750 os <<
" reportConfigEutra.triggerQuantity "
5751 << (int)it->reportConfigEutra.triggerQuantity << std::endl;
5752 os <<
" reportConfigEutra.reportQuantity "
5753 << (
int)it->reportConfigEutra.reportQuantity << std::endl;
5754 os <<
" reportConfigEutra.maxReportCells "
5755 << (int)it->reportConfigEutra.maxReportCells << std::endl;
5756 os <<
" reportConfigEutra.reportInterval "
5757 << (
int)it->reportConfigEutra.reportInterval << std::endl;
5758 os <<
" reportConfigEutra.reportAmount "
5759 << (int)it->reportConfigEutra.reportAmount << std::endl;
5765 os <<
" measIdToAddModList: " << std::endl;
5767 auto it = auxList.begin();
5768 for (; it != auxList.end(); it++)
5770 os <<
" measId: " << (int)it->measId << std::endl;
5771 os <<
" measObjectId: " << (
int)it->measObjectId << std::endl;
5772 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5773 os <<
" ------ " << std::endl;
5780 os <<
" filterCoefficientRSRP: "
5782 os <<
" filterCoefficientRSRQ:"
5790 os <<
" measGapConfig.gap (gap0/1,value): ("
5805 os <<
" speedStatePars.mobilityStateParameters.tEvaluation: "
5807 os <<
" speedStatePars.mobilityStateParameters.tHystNormal: "
5809 os <<
" speedStatePars.mobilityStateParameters.nCellChangeMedium: "
5812 os <<
" speedStatePars.mobilityStateParameters.nCellChangeHigh: "
5815 os <<
" speedStatePars.timeToTriggerSf.sfMedium: "
5817 os <<
" speedStatePars.timeToTriggerSf.sfHigh: "
5829 os <<
" carrierFreq.dlCarrierFreq: "
5831 os <<
" carrierFreq.dlCarrierFreq: "
5837 os <<
" carrierBandwidth.dlBandwidth: "
5839 os <<
" carrierBandwidth.ulBandwidth: "
5847 os <<
"raPreambleIndex: "
5849 os <<
"raPrachMaskIndex: "
5954std::list<LteRrcSap::SrbToAddMod>
5960std::list<LteRrcSap::DrbToAddMod>
6003 std::bitset<4> handoverPrepInfoOpts;
6004 handoverPrepInfoOpts.set(3,
true);
6005 handoverPrepInfoOpts.set(2,
false);
6006 handoverPrepInfoOpts.set(1,
false);
6007 handoverPrepInfoOpts.set(0,
false);
6064 std::bitset<0> bitset0;
6072 int criticalExtensionsChosen;
6075 if (criticalExtensionsChosen == 1)
6080 else if (criticalExtensionsChosen == 0)
6089 else if (c1Chosen == 0)
6092 std::bitset<4> handoverPrepInfoOpts;
6097 for (
int i = 0; i < n; i++)
6103 if (handoverPrepInfoOpts[3])
6122 std::bitset<16> cRnti;
6137 std::bitset<8> systemFrameNumber;
6140 systemFrameNumber.to_ulong();
6142 std::bitset<10> spare;
6163 if (handoverPrepInfoOpts[2])
6168 if (handoverPrepInfoOpts[1])
6173 if (handoverPrepInfoOpts[0])
6192 os <<
"plmnIdentityInfo.plmnIdentity: "
6196 os <<
"cellAccessRelatedInfo.cellIdentity "
6199 os <<
"cellAccessRelatedInfo.csgIndication: "
6202 os <<
"cellAccessRelatedInfo.csgIdentity: "
6294 std::bitset<0> bitset0;
6319 std::bitset<16> cRnti;
6329 std::bitset<16> shortMacI;
6351 std::bitset<2> spare;
6444 std::bitset<0> bitset0;
6458 int criticalExtensionsChoice;
6460 if (criticalExtensionsChoice == 1)
6465 else if (criticalExtensionsChoice == 0)
6478 std::bitset<1> nonCriticalExtensionPresent;
6497 os <<
"RadioResourceConfigDedicated: " << std::endl;
6565 std::bitset<0> bitset0;
6579 int criticalExtensionsChoice;
6581 if (criticalExtensionsChoice == 1)
6586 else if (criticalExtensionsChoice == 0)
6589 std::bitset<1> opts;
6665 std::bitset<0> bitset0;
6674 int criticalExtensionsChoice;
6676 if (criticalExtensionsChoice == 1)
6681 else if (criticalExtensionsChoice == 0)
6684 std::bitset<1> opts;
6760 std::bitset<0> bitset0;
6774 int criticalExtensionsChoice;
6776 if (criticalExtensionsChoice == 1)
6781 else if (criticalExtensionsChoice == 0)
6790 std::bitset<3> opts;
6882 std::bitset<0> bitset0;
6892 int criticalExtensionsChoice;
6894 if (criticalExtensionsChoice == 1)
6899 else if (criticalExtensionsChoice == 0)
6909 else if (c1Choice == 0)
6912 std::bitset<1> opts;
6992 std::bitset<0> bitset0;
6998 int criticalExtensionsChoice;
7001 if (criticalExtensionsChoice == 1)
7006 else if (criticalExtensionsChoice == 0)
7019 std::bitset<1> isNonCriticalExtensionPresent;
7025 if (isNonCriticalExtensionPresent[0])
7044 os <<
"haveMeasResultNeighCells = "
7049 std::list<LteRrcSap::MeasResultEutra> measResultListEutra =
7051 auto it = measResultListEutra.begin();
7052 for (; it != measResultListEutra.end(); it++)
7054 os <<
" physCellId =" << (int)it->physCellId << std::endl;
7055 os <<
" haveCgiInfo =" << it->haveCgiInfo << std::endl;
7056 if (it->haveCgiInfo)
7058 os <<
" plmnIdentity = " << (int)it->cgiInfo.plmnIdentity << std::endl;
7059 os <<
" cellIdentity = " << (
int)it->cgiInfo.cellIdentity << std::endl;
7060 os <<
" trackingAreaCode = " << (int)it->cgiInfo.trackingAreaCode << std::endl;
7061 os <<
" havePlmnIdentityList = " << !it->cgiInfo.plmnIdentityList.empty()
7063 if (!it->cgiInfo.plmnIdentityList.empty())
7065 for (
auto it2 = it->cgiInfo.plmnIdentityList.begin();
7066 it2 != it->cgiInfo.plmnIdentityList.end();
7069 os <<
" plmnId : " << *it2 << std::endl;
7074 os <<
" haveRsrpResult =" << it->haveRsrpResult << std::endl;
7075 if (it->haveRsrpResult)
7077 os <<
" rsrpResult =" << (int)it->rsrpResult << std::endl;
7080 os <<
" haveRsrqResult =" << it->haveRsrqResult << std::endl;
7081 if (it->haveRsrqResult)
7083 os <<
" rsrqResult =" << (int)it->rsrqResult << std::endl;
7124 std::cout <<
"UL DCCH MSG TYPE: " <<
m_messageType << std::endl;
7136 std::bitset<0> bitset0;
7186 std::cout <<
"DL DCCH MSG TYPE: " <<
m_messageType << std::endl;
7198 std::bitset<0> bitset0;
7248 std::cout <<
"UL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7260 std::bitset<0> bitset0;
7310 std::cout <<
"DL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7322 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.
uint32_t Deserialize(Buffer::Iterator bIterator) override
LteRrcSap::AsConfig GetAsConfig() const
Getter for m_asConfig.
ReestablishmentCause
ReestablishmentCause enumeration.
@ RECONFIGURATION_FAILURE
Buffer::Iterator DeserializeDlCcchMessage(Buffer::Iterator bIterator)
Deserialize DL CCCH message function.
uint32_t Deserialize(Buffer::Iterator bIterator) 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.
~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.
uint32_t Deserialize(Buffer::Iterator bIterator) override
~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.
uint32_t Deserialize(Buffer::Iterator bIterator) override
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.
uint32_t Deserialize(Buffer::Iterator bIterator) 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.
~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.
enum ns3::LteRrcSap::ReportConfigEutra::@62 eventId
Event enumeration.
enum ns3::LteRrcSap::ReportConfigEutra::@61 triggerType
Trigger enumeration.
uint8_t hysteresis
Parameter used within the entry and leave condition of an event triggered reporting condition.
@ RSRP
Reference Signal Received Power.
@ RSRQ
Reference Signal Received Quality.
@ EVENT_A2
Event A2: Serving becomes worse than absolute threshold.
@ EVENT_A3
Event A3: Neighbour becomes amount of offset better than PCell.
@ EVENT_A4
Event A4: Neighbour becomes better than absolute threshold.
@ EVENT_A1
Event A1: Serving becomes better than absolute threshold.
@ EVENT_A5
Event A5: PCell becomes worse than absolute threshold1 AND Neighbour becomes better than another abso...
uint8_t reportAmount
Number of measurement reports applicable, always assumed to be infinite.
enum ns3::LteRrcSap::ReportConfigEutra::@65 reportInterval
Report interval enumeration.
ThresholdEutra threshold2
Threshold for event A5.
enum ns3::LteRrcSap::ReportConfigEutra::@63 triggerQuantity
Trigger type enumeration.
@ BOTH
Both the RSRP and RSRQ quantities are to be included in the measurement report.
@ SAME_AS_TRIGGER_QUANTITY
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5.
enum ns3::LteRrcSap::ReportConfigEutra::@64 reportQuantity
Report type enumeration.
@ PERIODICAL
periodical report
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.
@ THRESHOLD_RSRP
RSRP is used for the threshold.
@ THRESHOLD_RSRQ
RSRQ is used for the threshold.
enum ns3::LteRrcSap::ThresholdEutra::@60 choice
Threshold enumeration.
uint8_t range
Value range used in RSRP/RSRQ threshold.
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