130 auto it = drbToAddModList.begin();
131 for (; it != drbToAddModList.end(); it++)
135 std::bitset<5> drbToAddModListOptionalFieldsPresent = std::bitset<5>();
136 drbToAddModListOptionalFieldsPresent.set(4,
true);
137 drbToAddModListOptionalFieldsPresent.set(3,
false);
138 drbToAddModListOptionalFieldsPresent.set(2,
true);
139 drbToAddModListOptionalFieldsPresent.set(1,
true);
140 drbToAddModListOptionalFieldsPresent.set(0,
true);
149 switch (it->rlcConfig.choice)
218 auto it = srbToAddModList.begin();
219 for (; it != srbToAddModList.end(); it++)
223 std::bitset<2> srbToAddModListOptionalFieldsPresent = std::bitset<2>();
224 srbToAddModListOptionalFieldsPresent.set(1,
false);
225 srbToAddModListOptionalFieldsPresent.set(0,
true);
321 std::bitset<10> optionalFieldsPhysicalConfigDedicated;
322 optionalFieldsPhysicalConfigDedicated.set(
325 optionalFieldsPhysicalConfigDedicated.set(8,
false);
326 optionalFieldsPhysicalConfigDedicated.set(7,
false);
327 optionalFieldsPhysicalConfigDedicated.set(6,
false);
328 optionalFieldsPhysicalConfigDedicated.set(5,
false);
329 optionalFieldsPhysicalConfigDedicated.set(4,
false);
330 optionalFieldsPhysicalConfigDedicated.set(3,
false);
331 optionalFieldsPhysicalConfigDedicated.set(
334 optionalFieldsPhysicalConfigDedicated.set(
337 optionalFieldsPhysicalConfigDedicated.set(0,
false);
426 bool isSrbToAddModListPresent = !radioResourceConfigDedicated.
srbToAddModList.empty();
427 bool isDrbToAddModListPresent = !radioResourceConfigDedicated.
drbToAddModList.empty();
428 bool isDrbToReleaseListPresent = !radioResourceConfigDedicated.
drbToReleaseList.empty();
431 std::bitset<6> optionalFieldsPresent = std::bitset<6>();
432 optionalFieldsPresent.set(5, isSrbToAddModListPresent);
433 optionalFieldsPresent.set(4, isDrbToAddModListPresent);
434 optionalFieldsPresent.set(3, isDrbToReleaseListPresent);
435 optionalFieldsPresent.set(2,
false);
436 optionalFieldsPresent.set(1,
false);
441 if (isSrbToAddModListPresent)
447 if (isDrbToAddModListPresent)
453 if (isDrbToReleaseListPresent)
682 std::bitset<4> measResultOptional;
684 measResultOptional.set(2,
false);
685 measResultOptional.set(1,
false);
733 if (!it->cgiInfo.plmnIdentityList.empty())
736 for (
auto it2 = it->cgiInfo.plmnIdentityList.begin();
737 it2 != it->cgiInfo.plmnIdentityList.end();
746 std::bitset<2> measResultFieldsPresent;
747 measResultFieldsPresent[1] = it->haveRsrpResult;
748 measResultFieldsPresent[0] = it->haveRsrqResult;
751 if (it->haveRsrpResult)
756 if (it->haveRsrqResult)
772 std::bitset<2> measResultServFreqPresent;
773 measResultServFreqPresent[0] = it.haveMeasResultSCell;
774 measResultServFreqPresent[1] = it.haveMeasResultBestNeighCell;
780 if (it.haveMeasResultSCell)
789 if (it.haveMeasResultBestNeighCell)
801 NS_ASSERT(!it.haveMeasResultBestNeighCell);
1114 std::bitset<11> measConfigOptional;
1124 measConfigOptional.set(1,
false);
1151 std::bitset<5> measObjOpts;
1152 measObjOpts.set(4, !it->measObjectEutra.cellsToRemoveList.empty());
1153 measObjOpts.set(3, !it->measObjectEutra.cellsToAddModList.empty());
1154 measObjOpts.set(2, !it->measObjectEutra.blackCellsToRemoveList.empty());
1155 measObjOpts.set(1, !it->measObjectEutra.blackCellsToAddModList.empty());
1156 measObjOpts.set(0, it->measObjectEutra.haveCellForWhichToReportCGI);
1169 if (!it->measObjectEutra.cellsToRemoveList.empty())
1172 for (
auto it2 = it->measObjectEutra.cellsToRemoveList.begin();
1173 it2 != it->measObjectEutra.cellsToRemoveList.end();
1180 if (!it->measObjectEutra.cellsToAddModList.empty())
1183 for (
auto it2 = it->measObjectEutra.cellsToAddModList.begin();
1184 it2 != it->measObjectEutra.cellsToAddModList.end();
1200 if (!it->measObjectEutra.blackCellsToRemoveList.empty())
1205 for (
auto it2 = it->measObjectEutra.blackCellsToRemoveList.begin();
1206 it2 != it->measObjectEutra.blackCellsToRemoveList.end();
1213 if (!it->measObjectEutra.blackCellsToAddModList.empty())
1218 for (
auto it2 = it->measObjectEutra.blackCellsToAddModList.begin();
1219 it2 != it->measObjectEutra.blackCellsToAddModList.end();
1227 std::bitset<1> rangePresent(it2->physCellIdRange.haveRange);
1230 if (it2->physCellIdRange.haveRange)
1232 switch (it2->physCellIdRange.range)
1283 if (it->measObjectEutra.haveCellForWhichToReportCGI)
1314 switch (it->reportConfigEutra.triggerType)
1319 switch (it->reportConfigEutra.purpose)
1333 switch (it->reportConfigEutra.eventId)
1366 switch (it->reportConfigEutra.timeToTrigger)
1430 if (it->reportConfigEutra.reportQuantity ==
1444 switch (it->reportConfigEutra.reportInterval)
1497 switch (it->reportConfigEutra.reportAmount)
1554 std::bitset<4> quantityConfigOpts(0);
1555 quantityConfigOpts.set(3,
true);
1799 std::bitset<3> noncriticalExtension_v1020;
1800 noncriticalExtension_v1020.set(
1803 noncriticalExtension_v1020.set(
1806 noncriticalExtension_v1020.set(
1825 std::bitset<4> sCellToAddMod_r10;
1826 sCellToAddMod_r10.set(3,
true);
1827 sCellToAddMod_r10.set(2,
true);
1828 sCellToAddMod_r10.set(1,
true);
1829 sCellToAddMod_r10.set(
1831 it.haveRadioResourceConfigDedicatedSCell);
1836 std::bitset<2> cellIdentification_r10;
1837 cellIdentification_r10.set(1,
true);
1838 cellIdentification_r10.set(0,
true);
1847 if (it.haveRadioResourceConfigDedicatedSCell)
1861 std::bitset<2> radioResourceConfigCommonSCell_r10;
1869 std::bitset<5> nonUlConfiguration_r10;
1870 nonUlConfiguration_r10.set(4,
true);
1871 nonUlConfiguration_r10.set(3,
true);
1872 nonUlConfiguration_r10.set(2,
false);
1873 nonUlConfiguration_r10.set(1,
true);
1874 nonUlConfiguration_r10.set(0,
false);
1879 std::bitset<1> antennaInfoCommon_r10;
1880 antennaInfoCommon_r10.set(0,
true);
1884 std::bitset<2> pdschConfigCommon_r10;
1885 pdschConfigCommon_r10.set(1,
true);
1886 pdschConfigCommon_r10.set(0,
true);
1896 std::bitset<7> UlConfiguration_r10;
1897 UlConfiguration_r10.set(6,
true);
1898 UlConfiguration_r10.set(5,
false);
1899 UlConfiguration_r10.set(4,
true);
1900 UlConfiguration_r10.set(3,
false);
1901 UlConfiguration_r10.set(2,
false);
1902 UlConfiguration_r10.set(1,
true);
1903 UlConfiguration_r10.set(0,
false);
1907 std::bitset<3> FreqInfo_r10;
1908 FreqInfo_r10.set(2,
true);
1909 FreqInfo_r10.set(1,
true);
1910 FreqInfo_r10.set(0,
false);
1917 std::bitset<2> UlPowerControlCommonSCell_r10;
1918 UlPowerControlCommonSCell_r10.set(1,
false);
1919 UlPowerControlCommonSCell_r10.set(0,
true);
1928 std::bitset<1> prachConfigSCell_r10;
1929 prachConfigSCell_r10.set(0,
true);
2215 std::bitset<6> optionalFieldsPresent = std::bitset<6>();
2218 if (optionalFieldsPresent[5])
2225 if (optionalFieldsPresent[4])
2232 if (optionalFieldsPresent[3])
2238 for (
int i = 0; i < n; i++)
2245 if (optionalFieldsPresent[2])
2251 if (optionalFieldsPresent[1])
2258 if (optionalFieldsPresent[0])
2440 std::bitset<1> bitset1;
2450 logicalChannelConfig->
priority = n;
2454 uint16_t prioritizedBitRateKbps;
2459 prioritizedBitRateKbps = 0;
2462 prioritizedBitRateKbps = 8;
2465 prioritizedBitRateKbps = 16;
2468 prioritizedBitRateKbps = 32;
2471 prioritizedBitRateKbps = 64;
2474 prioritizedBitRateKbps = 128;
2477 prioritizedBitRateKbps = 256;
2480 prioritizedBitRateKbps = 10000;
2483 prioritizedBitRateKbps = 10000;
2489 uint16_t bucketSizeDurationMs;
2493 bucketSizeDurationMs = 50;
2496 bucketSizeDurationMs = 100;
2499 bucketSizeDurationMs = 150;
2502 bucketSizeDurationMs = 300;
2505 bucketSizeDurationMs = 500;
2508 bucketSizeDurationMs = 1000;
2511 bucketSizeDurationMs = 1000;
2530 std::bitset<10> optionalFieldPresent;
2534 if (optionalFieldPresent[9])
2537 std::bitset<0> bitset0;
2548 if (optionalFieldPresent[8])
2553 if (optionalFieldPresent[7])
2558 if (optionalFieldPresent[6])
2563 if (optionalFieldPresent[5])
2568 if (optionalFieldPresent[4])
2573 if (optionalFieldPresent[3])
2579 if (optionalFieldPresent[2])
2598 std::bitset<0> bitset0;
2629 if (optionalFieldPresent[1])
2640 std::bitset<1> codebookSubsetRestrictionPresent;
2647 if (codebookSubsetRestrictionPresent[0])
2653 int txantennaselchosen;
2655 if (txantennaselchosen == 0)
2660 else if (txantennaselchosen == 1)
2667 if (optionalFieldPresent[0])
2689 std::bitset<2> nonCriticalExtension_v890;
2692 if (nonCriticalExtension_v890[0])
2695 std::bitset<3> nonCriticalExtension_v920;
2697 if (nonCriticalExtension_v920[0])
2700 std::bitset<3> nonCriticalExtension_v1020;
2703 if (nonCriticalExtension_v1020[2])
2711 for (
int i = 0; i < numElems; i++)
2720 if (nonCriticalExtension_v1020[1])
2728 for (
int i = 0; i < numElems; i++)
2730 std::bitset<4> sCellToAddMod_r10;
2748 if (sCellToAddMod_r10[0])
2765 NS_ASSERT(!nonCriticalExtension_v1020[0]);
2798 std::bitset<2> radioResourceConfigCommonSCell_r10;
2804 std::bitset<5> nonUlConfiguration_r10;
2810 std::bitset<1> antennaInfoCommon_r10;
2815 std::bitset<2> pdschConfigCommon_r10;
2824 std::bitset<7> UlConfiguration_r10;
2827 std::bitset<3> FreqInfo_r10;
2835 std::bitset<2> UlPowerControlCommonSCell_r10;
2840 std::bitset<1> prachConfigSCell_r10;
2869 std::bitset<2> pcdscOpt;
2875 std::bitset<4> nulOpt;
2893 std::bitset<1> codebookSubsetRestrictionPresent;
2901 if (codebookSubsetRestrictionPresent[0])
2908 int txantennaselchosen;
2910 if (txantennaselchosen == 0)
2915 else if (txantennaselchosen == 1)
2926 std::bitset<0> bitset0;
2940 std::bitset<7> ulOpt;
2961 std::bitset<1> codebookSubsetRestrictionPresent;
2969 if (codebookSubsetRestrictionPresent[0])
2976 int txantennaselchosen;
2978 if (txantennaselchosen == 0)
2983 else if (txantennaselchosen == 1)
3010 std::bitset<0> bitset0;
3049 os <<
" srbToAddModList: " << std::endl;
3051 for (; it != radioResourceConfigDedicated.
srbToAddModList.end(); it++)
3053 os <<
" srbIdentity: " << (int)it->srbIdentity << std::endl;
3054 os <<
" logicalChannelConfig: " << std::endl;
3055 os <<
" priority: " << (int)it->logicalChannelConfig.priority << std::endl;
3056 os <<
" prioritizedBitRateKbps: "
3057 << (int)it->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
3058 os <<
" bucketSizeDurationMs: "
3059 << (int)it->logicalChannelConfig.bucketSizeDurationMs << std::endl;
3060 os <<
" logicalChannelGroup: " << (int)it->logicalChannelConfig.logicalChannelGroup
3065 os <<
" drbToAddModList: " << std::endl;
3067 for (; it2 != radioResourceConfigDedicated.
drbToAddModList.end(); it2++)
3069 os <<
" epsBearerIdentity: " << (int)it2->epsBearerIdentity << std::endl;
3070 os <<
" drbIdentity: " << (int)it2->drbIdentity << std::endl;
3071 os <<
" rlcConfig: " << it2->rlcConfig.choice << std::endl;
3072 os <<
" logicalChannelIdentity: " << (int)it2->logicalChannelIdentity << std::endl;
3073 os <<
" logicalChannelConfig: " << std::endl;
3074 os <<
" priority: " << (int)it2->logicalChannelConfig.priority << std::endl;
3075 os <<
" prioritizedBitRateKbps: "
3076 << (int)it2->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
3077 os <<
" bucketSizeDurationMs: "
3078 << (int)it2->logicalChannelConfig.bucketSizeDurationMs << std::endl;
3079 os <<
" logicalChannelGroup: " << (int)it2->logicalChannelConfig.logicalChannelGroup
3084 os <<
" drbToReleaseList: ";
3088 os << (int)*it3 <<
", ";
3092 os <<
" havePhysicalConfigDedicated: "
3097 os <<
" physicalConfigDedicated: " << std::endl;
3099 os <<
" haveSoundingRsUlConfigDedicated: "
3104 os <<
" soundingRsUlConfigDedicated: " << std::endl;
3109 os <<
" srsBandwidth: "
3113 os <<
" srsConfigIndex: "
3119 os <<
" haveAntennaInfoDedicated: "
3124 os <<
" antennaInfo Tx mode: "
3137 std::bitset<0> bitset0;
3140 std::bitset<3> sysInfoBlkT1Opts;
3144 std::bitset<1> cellAccessRelatedInfoOpts;
3148 int numPlmnIdentityInfoElements;
3150 for (
int i = 0; i < numPlmnIdentityInfoElements; i++)
3161 std::bitset<16> trackingAreaCode;
3165 std::bitset<28> cellIdentity;
3180 if (cellAccessRelatedInfoOpts[0])
3183 std::bitset<27> csgIdentity;
3189 std::bitset<1> qRxLevMinOffsetPresent;
3192 if (qRxLevMinOffsetPresent[0])
3198 if (sysInfoBlkT1Opts[2])
3208 int numSchedulingInfo;
3210 for (
int i = 0; i < numSchedulingInfo; i++)
3217 for (
int j = 0; j < numSibType; j++)
3223 if (sysInfoBlkT1Opts[1])
3235 if (sysInfoBlkT1Opts[0])
3608 std::bitset<0> bitset0;
3627 std::bitset<1> prachConfigInfoPresent;
3632 if (prachConfigInfoPresent[0])
3721 std::bitset<4> measResultOptionalPresent;
3744 int measResultNeighCellsChoice;
3747 bIterator =
DeserializeChoice(4,
false, &measResultNeighCellsChoice, bIterator);
3749 if (measResultNeighCellsChoice == 0)
3755 for (
int i = 0; i < numElems; i++)
3759 std::bitset<1> isCgiInfoPresent;
3766 measResultEutra.
haveCgiInfo = isCgiInfoPresent[0];
3767 if (isCgiInfoPresent[0])
3769 std::bitset<1> havePlmnIdentityList;
3780 std::bitset<28> cellId;
3785 std::bitset<16> trArCo;
3790 if (havePlmnIdentityList[0])
3795 for (
int j = 0; j < numPlmnElems; j++)
3805 std::bitset<2> measResultOpts;
3809 if (measResultOpts[1])
3817 if (measResultOpts[0])
3828 if (measResultNeighCellsChoice == 1)
3834 if (measResultNeighCellsChoice == 2)
3839 if (measResultNeighCellsChoice == 3)
3849 for (
int i = 0; i < numElems; i++)
3854 std::bitset<2> measResultScellPresent;
3929 std::bitset<0> bitset0;
3930 std::bitset<2> bitset2;
3931 std::bitset<11> bitset11;
3940 int measObjectToRemoveListElems;
3944 for (
int i = 0; i < measObjectToRemoveListElems; i++)
3954 int measObjectToAddModListElems;
3958 for (
int i = 0; i < measObjectToAddModListElems; i++)
3967 int measObjectChoice;
3970 switch (measObjectChoice)
3988 std::bitset<5> measObjectEutraOpts;
4010 if (measObjectEutraOpts[4])
4016 for (
int i = 0; i < numElems; i++)
4023 if (measObjectEutraOpts[3])
4029 for (
int i = 0; i < numElems; i++)
4051 if (measObjectEutraOpts[2])
4057 for (
int i = 0; i < numElems; i++)
4064 if (measObjectEutraOpts[1])
4070 for (
int i = 0; i < numElems; i++)
4079 std::bitset<1> isRangePresent;
4147 if (measObjectEutraOpts[0])
4161 int reportConfigToRemoveListElems;
4167 for (
int i = 0; i < reportConfigToRemoveListElems; i++)
4177 int reportConfigToAddModListElems;
4183 for (
int i = 0; i < reportConfigToAddModListElems; i++)
4192 int reportConfigChoice;
4195 if (reportConfigChoice == 0)
4201 int triggerTypeChoice;
4204 if (triggerTypeChoice == 0)
4214 switch (eventIdChoice)
4314 if (triggerTypeChoice == 1)
4443 if (reportConfigChoice == 1)
4456 int measIdToRemoveListElems;
4459 for (
int i = 0; i < measIdToRemoveListElems; i++)
4469 int measIdToAddModListElems;
4472 for (
int i = 0; i < measIdToAddModListElems; i++)
4495 std::bitset<4> quantityConfigOpts;
4498 if (quantityConfigOpts[3])
4611 if (quantityConfigOpts[2])
4616 if (quantityConfigOpts[1])
4621 if (quantityConfigOpts[0])
4632 int measGapConfigChoice;
4634 switch (measGapConfigChoice)
4645 int gapOffsetChoice;
4647 switch (gapOffsetChoice)
4681 int speedStateParsChoice;
4683 switch (speedStateParsChoice)