20#define MAX_EARFCN 262143
21#define MAX_RAT_CAPABILITIES 8
22#define MAX_SI_MESSAGE 32
25#define MAX_REPORT_CONFIG_ID 32
26#define MAX_OBJECT_ID 32
28#define MAX_CELL_MEAS 32
29#define MAX_CELL_REPORT 8
31#define MAX_SCELL_REPORT 5
32#define MAX_SCELL_CONF 5
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);
256 int prioritizedBitRate;
260 prioritizedBitRate = 0;
263 prioritizedBitRate = 1;
266 prioritizedBitRate = 2;
269 prioritizedBitRate = 3;
272 prioritizedBitRate = 4;
275 prioritizedBitRate = 5;
278 prioritizedBitRate = 6;
281 prioritizedBitRate = 7;
286 int bucketSizeDuration;
290 bucketSizeDuration = 0;
293 bucketSizeDuration = 1;
296 bucketSizeDuration = 2;
299 bucketSizeDuration = 3;
302 bucketSizeDuration = 4;
305 bucketSizeDuration = 5;
308 bucketSizeDuration = 5;
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)
475 std::bitset<3> sysInfoBlk1Opts;
476 sysInfoBlk1Opts.set(2,
false);
477 sysInfoBlk1Opts.set(1,
false);
478 sysInfoBlk1Opts.set(0,
false);
538 std::bitset<9> rrCfgCmmOpts;
539 rrCfgCmmOpts.set(8,
true);
540 rrCfgCmmOpts.set(7,
false);
541 rrCfgCmmOpts.set(6,
false);
542 rrCfgCmmOpts.set(5,
false);
543 rrCfgCmmOpts.set(4,
false);
544 rrCfgCmmOpts.set(3,
false);
545 rrCfgCmmOpts.set(2,
false);
546 rrCfgCmmOpts.set(1,
false);
547 rrCfgCmmOpts.set(0,
false);
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);
813 int nDig = (plmnId > 99) ? 3 : 2;
816 for (
int i = nDig - 1; i >= 0; i--)
818 int n = floor(plmnId / pow(10, i));
820 plmnId -= n * pow(10, i);
993 switch (qOffsetRange)
1096 switch (thresholdEutra.
choice)
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);
1940 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
1941 RadioResourceConfigDedicatedSCell_r10.set(0,
true);
1952 std::bitset<2> pcdscOpt;
1960 std::bitset<4> nulOpt;
1962 nulOpt.set(2,
false);
1963 nulOpt.set(1,
false);
2004 std::bitset<7> ulOpt;
2006 ulOpt.set(5,
false);
2007 ulOpt.set(4,
false);
2008 ulOpt.set(3,
false);
2010 ulOpt.set(1,
false);
2011 ulOpt.set(0,
false);
2084 int thresholdEutraChoice;
2088 switch (thresholdEutraChoice)
2093 thresholdEutra->
range = range;
2099 thresholdEutra->
range = range;
2113 *qOffsetRange = -24;
2116 *qOffsetRange = -22;
2119 *qOffsetRange = -20;
2122 *qOffsetRange = -18;
2125 *qOffsetRange = -16;
2128 *qOffsetRange = -14;
2131 *qOffsetRange = -12;
2134 *qOffsetRange = -10;
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])
2276 srbToAddModList->clear();
2279 for (
int i = 0; i < numElems; i++)
2284 std::bitset<2> optionalFields;
2292 if (optionalFields[1])
2298 if (optionalFields[0])
2317 srbToAddModList->insert(srbToAddModList->end(), srbToAddMod);
2331 drbToAddModList->clear();
2333 for (
int i = 0; i < n; i++)
2337 std::bitset<5> optionalFields;
2340 if (optionalFields[4])
2350 if (optionalFields[3])
2356 if (optionalFields[2])
2363 std::bitset<0> bitset0;
2414 if (optionalFields[1])
2420 if (optionalFields[0])
2426 drbToAddModList->insert(drbToAddModList->end(), drbToAddMod);
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])
2679 NS_FATAL_ERROR(
"RrcAsn1Header Print() function must also specify "
2680 "LteRrcSap::RadioResourceConfigDedicated as a second argument");
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]);
2778 std::bitset<2> cellIdentification_r10;
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;
2855 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
2856 bIterator =
DeserializeSequence(&RadioResourceConfigDedicatedSCell_r10,
false, bIterator);
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])
3248 std::bitset<0> bitset0;
3251 std::bitset<2> sysInfoBlkT2Opts;
3253 if (sysInfoBlkT2Opts[1])
3274 std::bitset<2> freqInfoOpts;
3276 if (freqInfoOpts[1])
3282 if (freqInfoOpts[0])
3292 if (sysInfoBlkT2Opts[0])
3309 std::bitset<0> bitset0;
3312 std::bitset<9> rrCfgCommOptions;
3316 if (rrCfgCommOptions[8])
3323 std::bitset<1> prachConfigInfoPresent;
3330 if (prachConfigInfoPresent[0])
3336 if (rrCfgCommOptions[7])
3377 if (rrCfgCommOptions[6])
3383 if (rrCfgCommOptions[5])
3389 if (rrCfgCommOptions[4])
3395 if (rrCfgCommOptions[3])
3401 if (rrCfgCommOptions[2])
3407 if (rrCfgCommOptions[1])
3413 if (rrCfgCommOptions[0])
3428 std::bitset<0> bitset0;
3434 std::bitset<1> preamblesGroupAConfigPresent;
3493 if (preamblesGroupAConfigPresent[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;
3899 std::bitset<1> isMccPresent;
3902 if (isMccPresent[0])
3913 for (
int j = mncDigits - 1; j >= 0; j--)
3916 mnc += n * pow(10, j);
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)
4762 m_mmec = std::bitset<8>(0UL);
4763 m_mTmsi = std::bitset<32>(0UL);
4765 m_spare = std::bitset<1>(0UL);
4784 os <<
"MMEC:" <<
m_mmec << std::endl;
4785 os <<
"MTMSI:" <<
m_mTmsi << std::endl;
4787 os <<
"Spare: " <<
m_spare << std::endl;
4836 std::bitset<1> dummy;
4837 std::bitset<0> optionalOrDefaultMask;
4914 os <<
"radioResourceConfigDedicated:" << std::endl;
4962 std::bitset<0> bitset0;
4963 std::bitset<1> bitset1;
4964 std::bitset<2> bitset2;
4978 int criticalExtensionChoice;
4980 if (criticalExtensionChoice == 1)
4985 else if (criticalExtensionChoice == 0)
5049std::list<LteRrcSap::SrbToAddMod>
5055std::list<LteRrcSap::DrbToAddMod>
5121 std::bitset<0> bitset0;
5224 std::bitset<0> bitset0;
5311 std::bitset<6> options;
5314 options.set(3,
false);
5316 options.set(1,
false);
5331 std::bitset<4> mobCtrlIntoOptional;
5334 mobCtrlIntoOptional.set(1,
false);
5386 std::bitset<2> noncriticalExtension_v890;
5387 noncriticalExtension_v890.set(1,
false);
5388 noncriticalExtension_v890.set(
5397 std::bitset<3> noncriticalExtension_v920;
5398 noncriticalExtension_v920.set(1,
false);
5399 noncriticalExtension_v920.set(1,
false);
5401 noncriticalExtension_v920.set(
5418 std::bitset<0> bitset0;
5447 else if (c1Chosen == 0)
5450 std::bitset<6> rrcConnRecOpts;
5463 std::bitset<4> mobCtrlOpts;
5474 std::bitset<1> ulCarrierFreqPresent;
5480 if (ulCarrierFreqPresent[0])
5491 std::bitset<1> ulBandwidthPresent;
5497 if (ulBandwidthPresent[0])
5514 std::bitset<16> cRnti;
5535 if (rrcConnRecOpts[3])
5549 if (rrcConnRecOpts[1])
5577 os <<
" measObjectToRemoveList: ";
5579 auto it = auxList.begin();
5580 for (; it != auxList.end(); it++)
5582 os << (int)*it <<
", ";
5588 os <<
" reportConfigToRemoveList: ";
5590 auto it = auxList.begin();
5591 for (; it != auxList.end(); it++)
5593 os << (int)*it <<
", ";
5599 os <<
" measIdToRemoveList: ";
5601 auto it = auxList.begin();
5602 for (; it != auxList.end(); it++)
5604 os << (int)*it <<
", ";
5611 os <<
" measObjectToAddMod: " << std::endl;
5613 auto it = auxList.begin();
5614 for (; it != auxList.end(); it++)
5616 os <<
" measObjectId: " << (int)it->measObjectId << std::endl;
5617 os <<
" carrierFreq: " << (int)it->measObjectEutra.carrierFreq << std::endl;
5618 os <<
" allowedMeasBandwidth: " << (int)it->measObjectEutra.allowedMeasBandwidth
5620 os <<
" presenceAntennaPort1: " << it->measObjectEutra.presenceAntennaPort1
5622 os <<
" neighCellConfig: " << (int)it->measObjectEutra.neighCellConfig
5624 os <<
" offsetFreq: " << (int)it->measObjectEutra.offsetFreq << std::endl;
5626 if (!it->measObjectEutra.cellsToRemoveList.empty())
5628 os <<
" cellsToRemoveList: ";
5629 std::list<uint8_t> auxList = it->measObjectEutra.cellsToRemoveList;
5630 auto it = auxList.begin();
5631 for (; it != auxList.end(); it++)
5633 os << (int)*it <<
", ";
5638 if (!it->measObjectEutra.blackCellsToRemoveList.empty())
5640 os <<
" blackCellsToRemoveList: ";
5641 std::list<uint8_t> auxList = it->measObjectEutra.blackCellsToRemoveList;
5642 auto it = auxList.begin();
5643 for (; it != auxList.end(); it++)
5645 os << (int)*it <<
", ";
5650 if (!it->measObjectEutra.cellsToAddModList.empty())
5652 os <<
" cellsToAddModList: " << std::endl;
5653 std::list<LteRrcSap::CellsToAddMod> auxList =
5654 it->measObjectEutra.cellsToAddModList;
5655 auto it = auxList.begin();
5656 for (; it != auxList.end(); it++)
5658 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5659 os <<
" physCellId: " << (int)it->physCellId << std::endl;
5660 os <<
" cellIndividualOffset: " << (int)it->cellIndividualOffset
5662 os <<
" ------ " << std::endl;
5666 if (!it->measObjectEutra.blackCellsToAddModList.empty())
5668 os <<
" blackCellsToAddModList: " << std::endl;
5669 std::list<LteRrcSap::BlackCellsToAddMod> auxList =
5670 it->measObjectEutra.blackCellsToAddModList;
5671 auto it = auxList.begin();
5672 for (; it != auxList.end(); it++)
5674 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5675 os <<
" physCellIdRange.start: " << (int)it->physCellIdRange.start
5677 os <<
" physCellIdRange.haveRange: " << it->physCellIdRange.haveRange
5679 os <<
" physCellIdRange.range: " << (int)it->physCellIdRange.range
5681 os <<
" ------ " << std::endl;
5685 os <<
" haveCellForWhichToReportCGI: "
5686 << it->measObjectEutra.haveCellForWhichToReportCGI << std::endl;
5687 os <<
" cellForWhichToReportCGI: "
5688 << (int)it->measObjectEutra.cellForWhichToReportCGI << std::endl;
5689 os <<
" ------------- " << std::endl;
5695 os <<
" reportConfigToAddModList: " << std::endl;
5696 std::list<LteRrcSap::ReportConfigToAddMod> auxList =
5698 auto it = auxList.begin();
5699 for (; it != auxList.end(); it++)
5701 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5702 os <<
" reportConfigEutra.triggerType "
5703 << (int)it->reportConfigEutra.triggerType << std::endl;
5706 os <<
" reportConfigEutra.eventId " << (int)it->reportConfigEutra.eventId
5710 os <<
" reportConfigEutra.reportOnLeave "
5711 << (int)it->reportConfigEutra.reportOnLeave << std::endl;
5712 os <<
" reportConfigEutra.a3Offset "
5713 << (int)it->reportConfigEutra.a3Offset << std::endl;
5717 os <<
" reportConfigEutra.threshold1.choice "
5718 << (int)it->reportConfigEutra.threshold1.choice << std::endl;
5719 os <<
" reportConfigEutra.threshold1.range "
5720 << (int)it->reportConfigEutra.threshold1.range << std::endl;
5723 os <<
" reportConfigEutra.threshold2.choice "
5724 << (int)it->reportConfigEutra.threshold2.choice << std::endl;
5725 os <<
" reportConfigEutra.threshold2.range "
5726 << (int)it->reportConfigEutra.threshold2.range << std::endl;
5729 os <<
" reportConfigEutra.hysteresis "
5730 << (int)it->reportConfigEutra.hysteresis << std::endl;
5731 os <<
" reportConfigEutra.timeToTrigger "
5732 << (int)it->reportConfigEutra.timeToTrigger << std::endl;
5736 os <<
" reportConfigEutra.purpose " << (int)it->reportConfigEutra.purpose
5739 os <<
" reportConfigEutra.triggerQuantity "
5740 << (int)it->reportConfigEutra.triggerQuantity << std::endl;
5741 os <<
" reportConfigEutra.reportQuantity "
5742 << (int)it->reportConfigEutra.reportQuantity << std::endl;
5743 os <<
" reportConfigEutra.maxReportCells "
5744 << (int)it->reportConfigEutra.maxReportCells << std::endl;
5745 os <<
" reportConfigEutra.reportInterval "
5746 << (int)it->reportConfigEutra.reportInterval << std::endl;
5747 os <<
" reportConfigEutra.reportAmount "
5748 << (int)it->reportConfigEutra.reportAmount << std::endl;
5754 os <<
" measIdToAddModList: " << std::endl;
5756 auto it = auxList.begin();
5757 for (; it != auxList.end(); it++)
5759 os <<
" measId: " << (int)it->measId << std::endl;
5760 os <<
" measObjectId: " << (int)it->measObjectId << std::endl;
5761 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5762 os <<
" ------ " << std::endl;
5769 os <<
" filterCoefficientRSRP: "
5771 os <<
" filterCoefficientRSRQ:"
5779 os <<
" measGapConfig.gap (gap0/1,value): ("
5794 os <<
" speedStatePars.mobilityStateParameters.tEvaluation: "
5796 os <<
" speedStatePars.mobilityStateParameters.tHystNormal: "
5798 os <<
" speedStatePars.mobilityStateParameters.nCellChangeMedium: "
5801 os <<
" speedStatePars.mobilityStateParameters.nCellChangeHigh: "
5804 os <<
" speedStatePars.timeToTriggerSf.sfMedium: "
5806 os <<
" speedStatePars.timeToTriggerSf.sfHigh: "
5818 os <<
" carrierFreq.dlCarrierFreq: "
5820 os <<
" carrierFreq.dlCarrierFreq: "
5826 os <<
" carrierBandwidth.dlBandwidth: "
5828 os <<
" carrierBandwidth.ulBandwidth: "
5836 os <<
"raPreambleIndex: "
5838 os <<
"raPrachMaskIndex: "
5943std::list<LteRrcSap::SrbToAddMod>
5949std::list<LteRrcSap::DrbToAddMod>
5992 std::bitset<4> handoverPrepInfoOpts;
5993 handoverPrepInfoOpts.set(3,
true);
5994 handoverPrepInfoOpts.set(2,
false);
5995 handoverPrepInfoOpts.set(1,
false);
5996 handoverPrepInfoOpts.set(0,
false);
6053 std::bitset<0> bitset0;
6061 int criticalExtensionsChosen;
6064 if (criticalExtensionsChosen == 1)
6069 else if (criticalExtensionsChosen == 0)
6078 else if (c1Chosen == 0)
6081 std::bitset<4> handoverPrepInfoOpts;
6086 for (
int i = 0; i < n; i++)
6092 if (handoverPrepInfoOpts[3])
6111 std::bitset<16> cRnti;
6126 std::bitset<8> systemFrameNumber;
6129 systemFrameNumber.to_ulong();
6131 std::bitset<10> spare;
6152 if (handoverPrepInfoOpts[2])
6157 if (handoverPrepInfoOpts[1])
6162 if (handoverPrepInfoOpts[0])
6181 os <<
"plmnIdentityInfo.plmnIdentity: "
6185 os <<
"cellAccessRelatedInfo.cellIdentity "
6188 os <<
"cellAccessRelatedInfo.csgIndication: "
6191 os <<
"cellAccessRelatedInfo.csgIdentity: "
6283 std::bitset<0> bitset0;
6308 std::bitset<16> cRnti;
6318 std::bitset<16> shortMacI;
6340 std::bitset<2> spare;
6433 std::bitset<0> bitset0;
6447 int criticalExtensionsChoice;
6449 if (criticalExtensionsChoice == 1)
6454 else if (criticalExtensionsChoice == 0)
6467 std::bitset<1> nonCriticalExtensionPresent;
6486 os <<
"RadioResourceConfigDedicated: " << std::endl;
6554 std::bitset<0> bitset0;
6568 int criticalExtensionsChoice;
6570 if (criticalExtensionsChoice == 1)
6575 else if (criticalExtensionsChoice == 0)
6578 std::bitset<1> opts;
6654 std::bitset<0> bitset0;
6663 int criticalExtensionsChoice;
6665 if (criticalExtensionsChoice == 1)
6670 else if (criticalExtensionsChoice == 0)
6673 std::bitset<1> opts;
6749 std::bitset<0> bitset0;
6763 int criticalExtensionsChoice;
6765 if (criticalExtensionsChoice == 1)
6770 else if (criticalExtensionsChoice == 0)
6779 std::bitset<3> opts;
6871 std::bitset<0> bitset0;
6881 int criticalExtensionsChoice;
6883 if (criticalExtensionsChoice == 1)
6888 else if (criticalExtensionsChoice == 0)
6898 else if (c1Choice == 0)
6901 std::bitset<1> opts;
6981 std::bitset<0> bitset0;
6987 int criticalExtensionsChoice;
6990 if (criticalExtensionsChoice == 1)
6995 else if (criticalExtensionsChoice == 0)
7008 std::bitset<1> isNonCriticalExtensionPresent;
7014 if (isNonCriticalExtensionPresent[0])
7033 os <<
"haveMeasResultNeighCells = "
7038 std::list<LteRrcSap::MeasResultEutra> measResultListEutra =
7040 auto it = measResultListEutra.begin();
7041 for (; it != measResultListEutra.end(); it++)
7043 os <<
" physCellId =" << (int)it->physCellId << std::endl;
7044 os <<
" haveCgiInfo =" << it->haveCgiInfo << std::endl;
7045 if (it->haveCgiInfo)
7047 os <<
" plmnIdentity = " << (int)it->cgiInfo.plmnIdentity << std::endl;
7048 os <<
" cellIdentity = " << (int)it->cgiInfo.cellIdentity << std::endl;
7049 os <<
" trackingAreaCode = " << (int)it->cgiInfo.trackingAreaCode << std::endl;
7050 os <<
" havePlmnIdentityList = " << !it->cgiInfo.plmnIdentityList.empty()
7052 if (!it->cgiInfo.plmnIdentityList.empty())
7054 for (
auto it2 = it->cgiInfo.plmnIdentityList.begin();
7055 it2 != it->cgiInfo.plmnIdentityList.end();
7058 os <<
" plmnId : " << *it2 << std::endl;
7063 os <<
" haveRsrpResult =" << it->haveRsrpResult << std::endl;
7064 if (it->haveRsrpResult)
7066 os <<
" rsrpResult =" << (int)it->rsrpResult << std::endl;
7069 os <<
" haveRsrqResult =" << it->haveRsrqResult << std::endl;
7070 if (it->haveRsrqResult)
7072 os <<
" rsrqResult =" << (int)it->rsrqResult << std::endl;
7113 std::cout <<
"UL DCCH MSG TYPE: " <<
m_messageType << std::endl;
7125 std::bitset<0> bitset0;
7175 std::cout <<
"DL DCCH MSG TYPE: " <<
m_messageType << std::endl;
7187 std::bitset<0> bitset0;
7237 std::cout <<
"UL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7249 std::bitset<0> bitset0;
7299 std::cout <<
"DL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7311 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
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