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
129 auto it = drbToAddModList.begin();
130 for (; it != drbToAddModList.end(); it++)
134 std::bitset<5> drbToAddModListOptionalFieldsPresent = std::bitset<5>();
135 drbToAddModListOptionalFieldsPresent.set(4,
true);
136 drbToAddModListOptionalFieldsPresent.set(3,
false);
137 drbToAddModListOptionalFieldsPresent.set(2,
true);
138 drbToAddModListOptionalFieldsPresent.set(1,
true);
139 drbToAddModListOptionalFieldsPresent.set(0,
true);
148 switch (it->rlcConfig.choice)
217 auto it = srbToAddModList.begin();
218 for (; it != srbToAddModList.end(); it++)
222 std::bitset<2> srbToAddModListOptionalFieldsPresent = std::bitset<2>();
223 srbToAddModListOptionalFieldsPresent.set(1,
false);
224 srbToAddModListOptionalFieldsPresent.set(0,
true);
255 int prioritizedBitRate;
259 prioritizedBitRate = 0;
262 prioritizedBitRate = 1;
265 prioritizedBitRate = 2;
268 prioritizedBitRate = 3;
271 prioritizedBitRate = 4;
274 prioritizedBitRate = 5;
277 prioritizedBitRate = 6;
280 prioritizedBitRate = 7;
285 int bucketSizeDuration;
289 bucketSizeDuration = 0;
292 bucketSizeDuration = 1;
295 bucketSizeDuration = 2;
298 bucketSizeDuration = 3;
301 bucketSizeDuration = 4;
304 bucketSizeDuration = 5;
307 bucketSizeDuration = 5;
320 std::bitset<10> optionalFieldsPhysicalConfigDedicated;
321 optionalFieldsPhysicalConfigDedicated.set(
324 optionalFieldsPhysicalConfigDedicated.set(8,
false);
325 optionalFieldsPhysicalConfigDedicated.set(7,
false);
326 optionalFieldsPhysicalConfigDedicated.set(6,
false);
327 optionalFieldsPhysicalConfigDedicated.set(5,
false);
328 optionalFieldsPhysicalConfigDedicated.set(4,
false);
329 optionalFieldsPhysicalConfigDedicated.set(3,
false);
330 optionalFieldsPhysicalConfigDedicated.set(
333 optionalFieldsPhysicalConfigDedicated.set(
336 optionalFieldsPhysicalConfigDedicated.set(0,
false);
425 bool isSrbToAddModListPresent = !radioResourceConfigDedicated.
srbToAddModList.empty();
426 bool isDrbToAddModListPresent = !radioResourceConfigDedicated.
drbToAddModList.empty();
427 bool isDrbToReleaseListPresent = !radioResourceConfigDedicated.
drbToReleaseList.empty();
430 std::bitset<6> optionalFieldsPresent = std::bitset<6>();
431 optionalFieldsPresent.set(5, isSrbToAddModListPresent);
432 optionalFieldsPresent.set(4, isDrbToAddModListPresent);
433 optionalFieldsPresent.set(3, isDrbToReleaseListPresent);
434 optionalFieldsPresent.set(2,
false);
435 optionalFieldsPresent.set(1,
false);
440 if (isSrbToAddModListPresent)
446 if (isDrbToAddModListPresent)
452 if (isDrbToReleaseListPresent)
474 std::bitset<3> sysInfoBlk1Opts;
475 sysInfoBlk1Opts.set(2,
false);
476 sysInfoBlk1Opts.set(1,
false);
477 sysInfoBlk1Opts.set(0,
false);
537 std::bitset<9> rrCfgCmmOpts;
538 rrCfgCmmOpts.set(8,
true);
539 rrCfgCmmOpts.set(7,
false);
540 rrCfgCmmOpts.set(6,
false);
541 rrCfgCmmOpts.set(5,
false);
542 rrCfgCmmOpts.set(4,
false);
543 rrCfgCmmOpts.set(3,
false);
544 rrCfgCmmOpts.set(2,
false);
545 rrCfgCmmOpts.set(1,
false);
546 rrCfgCmmOpts.set(0,
false);
681 std::bitset<4> measResultOptional;
683 measResultOptional.set(2,
false);
684 measResultOptional.set(1,
false);
732 if (!it->cgiInfo.plmnIdentityList.empty())
735 for (
auto it2 = it->cgiInfo.plmnIdentityList.begin();
736 it2 != it->cgiInfo.plmnIdentityList.end();
745 std::bitset<2> measResultFieldsPresent;
746 measResultFieldsPresent[1] = it->haveRsrpResult;
747 measResultFieldsPresent[0] = it->haveRsrqResult;
750 if (it->haveRsrpResult)
755 if (it->haveRsrqResult)
771 std::bitset<2> measResultServFreqPresent;
772 measResultServFreqPresent[0] = it.haveMeasResultSCell;
773 measResultServFreqPresent[1] = it.haveMeasResultBestNeighCell;
779 if (it.haveMeasResultSCell)
788 if (it.haveMeasResultBestNeighCell)
800 NS_ASSERT(!it.haveMeasResultBestNeighCell);
812 int nDig = (plmnId > 99) ? 3 : 2;
815 for (
int i = nDig - 1; i >= 0; i--)
817 int n = floor(plmnId / pow(10, i));
819 plmnId -= n * pow(10, i);
992 switch (qOffsetRange)
1095 switch (thresholdEutra.
choice)
1113 std::bitset<11> measConfigOptional;
1123 measConfigOptional.set(1,
false);
1150 std::bitset<5> measObjOpts;
1151 measObjOpts.set(4, !it->measObjectEutra.cellsToRemoveList.empty());
1152 measObjOpts.set(3, !it->measObjectEutra.cellsToAddModList.empty());
1153 measObjOpts.set(2, !it->measObjectEutra.blackCellsToRemoveList.empty());
1154 measObjOpts.set(1, !it->measObjectEutra.blackCellsToAddModList.empty());
1155 measObjOpts.set(0, it->measObjectEutra.haveCellForWhichToReportCGI);
1168 if (!it->measObjectEutra.cellsToRemoveList.empty())
1171 for (
auto it2 = it->measObjectEutra.cellsToRemoveList.begin();
1172 it2 != it->measObjectEutra.cellsToRemoveList.end();
1179 if (!it->measObjectEutra.cellsToAddModList.empty())
1182 for (
auto it2 = it->measObjectEutra.cellsToAddModList.begin();
1183 it2 != it->measObjectEutra.cellsToAddModList.end();
1199 if (!it->measObjectEutra.blackCellsToRemoveList.empty())
1204 for (
auto it2 = it->measObjectEutra.blackCellsToRemoveList.begin();
1205 it2 != it->measObjectEutra.blackCellsToRemoveList.end();
1212 if (!it->measObjectEutra.blackCellsToAddModList.empty())
1217 for (
auto it2 = it->measObjectEutra.blackCellsToAddModList.begin();
1218 it2 != it->measObjectEutra.blackCellsToAddModList.end();
1226 std::bitset<1> rangePresent(it2->physCellIdRange.haveRange);
1229 if (it2->physCellIdRange.haveRange)
1231 switch (it2->physCellIdRange.range)
1282 if (it->measObjectEutra.haveCellForWhichToReportCGI)
1313 switch (it->reportConfigEutra.triggerType)
1318 switch (it->reportConfigEutra.purpose)
1332 switch (it->reportConfigEutra.eventId)
1365 switch (it->reportConfigEutra.timeToTrigger)
1429 if (it->reportConfigEutra.reportQuantity ==
1443 switch (it->reportConfigEutra.reportInterval)
1496 switch (it->reportConfigEutra.reportAmount)
1553 std::bitset<4> quantityConfigOpts(0);
1554 quantityConfigOpts.set(3,
true);
1798 std::bitset<3> noncriticalExtension_v1020;
1799 noncriticalExtension_v1020.set(
1802 noncriticalExtension_v1020.set(
1805 noncriticalExtension_v1020.set(
1824 std::bitset<4> sCellToAddMod_r10;
1825 sCellToAddMod_r10.set(3,
true);
1826 sCellToAddMod_r10.set(2,
true);
1827 sCellToAddMod_r10.set(1,
true);
1828 sCellToAddMod_r10.set(
1830 it.haveRadioResourceConfigDedicatedSCell);
1835 std::bitset<2> cellIdentification_r10;
1836 cellIdentification_r10.set(1,
true);
1837 cellIdentification_r10.set(0,
true);
1846 if (it.haveRadioResourceConfigDedicatedSCell)
1860 std::bitset<2> radioResourceConfigCommonSCell_r10;
1868 std::bitset<5> nonUlConfiguration_r10;
1869 nonUlConfiguration_r10.set(4,
true);
1870 nonUlConfiguration_r10.set(3,
true);
1871 nonUlConfiguration_r10.set(2,
false);
1872 nonUlConfiguration_r10.set(1,
true);
1873 nonUlConfiguration_r10.set(0,
false);
1878 std::bitset<1> antennaInfoCommon_r10;
1879 antennaInfoCommon_r10.set(0,
true);
1883 std::bitset<2> pdschConfigCommon_r10;
1884 pdschConfigCommon_r10.set(1,
true);
1885 pdschConfigCommon_r10.set(0,
true);
1895 std::bitset<7> UlConfiguration_r10;
1896 UlConfiguration_r10.set(6,
true);
1897 UlConfiguration_r10.set(5,
false);
1898 UlConfiguration_r10.set(4,
true);
1899 UlConfiguration_r10.set(3,
false);
1900 UlConfiguration_r10.set(2,
false);
1901 UlConfiguration_r10.set(1,
true);
1902 UlConfiguration_r10.set(0,
false);
1906 std::bitset<3> FreqInfo_r10;
1907 FreqInfo_r10.set(2,
true);
1908 FreqInfo_r10.set(1,
true);
1909 FreqInfo_r10.set(0,
false);
1916 std::bitset<2> UlPowerControlCommonSCell_r10;
1917 UlPowerControlCommonSCell_r10.set(1,
false);
1918 UlPowerControlCommonSCell_r10.set(0,
true);
1927 std::bitset<1> prachConfigSCell_r10;
1928 prachConfigSCell_r10.set(0,
true);
1939 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
1940 RadioResourceConfigDedicatedSCell_r10.set(0,
true);
1951 std::bitset<2> pcdscOpt;
1959 std::bitset<4> nulOpt;
1961 nulOpt.set(2,
false);
1962 nulOpt.set(1,
false);
2003 std::bitset<7> ulOpt;
2005 ulOpt.set(5,
false);
2006 ulOpt.set(4,
false);
2007 ulOpt.set(3,
false);
2009 ulOpt.set(1,
false);
2010 ulOpt.set(0,
false);
2083 int thresholdEutraChoice;
2087 switch (thresholdEutraChoice)
2092 thresholdEutra->
range = range;
2098 thresholdEutra->
range = range;
2112 *qOffsetRange = -24;
2115 *qOffsetRange = -22;
2118 *qOffsetRange = -20;
2121 *qOffsetRange = -18;
2124 *qOffsetRange = -16;
2127 *qOffsetRange = -14;
2130 *qOffsetRange = -12;
2133 *qOffsetRange = -10;
2214 std::bitset<6> optionalFieldsPresent = std::bitset<6>();
2217 if (optionalFieldsPresent[5])
2224 if (optionalFieldsPresent[4])
2231 if (optionalFieldsPresent[3])
2237 for (
int i = 0; i < n; i++)
2244 if (optionalFieldsPresent[2])
2250 if (optionalFieldsPresent[1])
2257 if (optionalFieldsPresent[0])
2275 srbToAddModList->clear();
2278 for (
int i = 0; i < numElems; i++)
2283 std::bitset<2> optionalFields;
2291 if (optionalFields[1])
2297 if (optionalFields[0])
2316 srbToAddModList->insert(srbToAddModList->end(), srbToAddMod);
2330 drbToAddModList->clear();
2332 for (
int i = 0; i < n; i++)
2336 std::bitset<5> optionalFields;
2339 if (optionalFields[4])
2349 if (optionalFields[3])
2355 if (optionalFields[2])
2362 std::bitset<0> bitset0;
2413 if (optionalFields[1])
2419 if (optionalFields[0])
2425 drbToAddModList->insert(drbToAddModList->end(), drbToAddMod);
2439 std::bitset<1> bitset1;
2449 logicalChannelConfig->
priority = n;
2453 uint16_t prioritizedBitRateKbps;
2458 prioritizedBitRateKbps = 0;
2461 prioritizedBitRateKbps = 8;
2464 prioritizedBitRateKbps = 16;
2467 prioritizedBitRateKbps = 32;
2470 prioritizedBitRateKbps = 64;
2473 prioritizedBitRateKbps = 128;
2476 prioritizedBitRateKbps = 256;
2479 prioritizedBitRateKbps = 10000;
2482 prioritizedBitRateKbps = 10000;
2488 uint16_t bucketSizeDurationMs;
2492 bucketSizeDurationMs = 50;
2495 bucketSizeDurationMs = 100;
2498 bucketSizeDurationMs = 150;
2501 bucketSizeDurationMs = 300;
2504 bucketSizeDurationMs = 500;
2507 bucketSizeDurationMs = 1000;
2510 bucketSizeDurationMs = 1000;
2529 std::bitset<10> optionalFieldPresent;
2533 if (optionalFieldPresent[9])
2536 std::bitset<0> bitset0;
2547 if (optionalFieldPresent[8])
2552 if (optionalFieldPresent[7])
2557 if (optionalFieldPresent[6])
2562 if (optionalFieldPresent[5])
2567 if (optionalFieldPresent[4])
2572 if (optionalFieldPresent[3])
2578 if (optionalFieldPresent[2])
2597 std::bitset<0> bitset0;
2628 if (optionalFieldPresent[1])
2639 std::bitset<1> codebookSubsetRestrictionPresent;
2646 if (codebookSubsetRestrictionPresent[0])
2652 int txantennaselchosen;
2654 if (txantennaselchosen == 0)
2659 else if (txantennaselchosen == 1)
2666 if (optionalFieldPresent[0])
2678 NS_FATAL_ERROR(
"RrcAsn1Header Print() function must also specify "
2679 "LteRrcSap::RadioResourceConfigDedicated as a second argument");
2688 std::bitset<2> nonCriticalExtension_v890;
2691 if (nonCriticalExtension_v890[0])
2694 std::bitset<3> nonCriticalExtension_v920;
2696 if (nonCriticalExtension_v920[0])
2699 std::bitset<3> nonCriticalExtension_v1020;
2702 if (nonCriticalExtension_v1020[2])
2710 for (
int i = 0; i < numElems; i++)
2719 if (nonCriticalExtension_v1020[1])
2727 for (
int i = 0; i < numElems; i++)
2729 std::bitset<4> sCellToAddMod_r10;
2747 if (sCellToAddMod_r10[0])
2764 NS_ASSERT(!nonCriticalExtension_v1020[0]);
2777 std::bitset<2> cellIdentification_r10;
2797 std::bitset<2> radioResourceConfigCommonSCell_r10;
2803 std::bitset<5> nonUlConfiguration_r10;
2809 std::bitset<1> antennaInfoCommon_r10;
2814 std::bitset<2> pdschConfigCommon_r10;
2823 std::bitset<7> UlConfiguration_r10;
2826 std::bitset<3> FreqInfo_r10;
2834 std::bitset<2> UlPowerControlCommonSCell_r10;
2839 std::bitset<1> prachConfigSCell_r10;
2854 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
2855 bIterator =
DeserializeSequence(&RadioResourceConfigDedicatedSCell_r10,
false, bIterator);
2868 std::bitset<2> pcdscOpt;
2874 std::bitset<4> nulOpt;
2892 std::bitset<1> codebookSubsetRestrictionPresent;
2900 if (codebookSubsetRestrictionPresent[0])
2907 int txantennaselchosen;
2909 if (txantennaselchosen == 0)
2914 else if (txantennaselchosen == 1)
2925 std::bitset<0> bitset0;
2939 std::bitset<7> ulOpt;
2960 std::bitset<1> codebookSubsetRestrictionPresent;
2968 if (codebookSubsetRestrictionPresent[0])
2975 int txantennaselchosen;
2977 if (txantennaselchosen == 0)
2982 else if (txantennaselchosen == 1)
3009 std::bitset<0> bitset0;
3048 os <<
" srbToAddModList: " << std::endl;
3050 for (; it != radioResourceConfigDedicated.
srbToAddModList.end(); it++)
3052 os <<
" srbIdentity: " << (int)it->srbIdentity << std::endl;
3053 os <<
" logicalChannelConfig: " << std::endl;
3054 os <<
" priority: " << (int)it->logicalChannelConfig.priority << std::endl;
3055 os <<
" prioritizedBitRateKbps: "
3056 << (int)it->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
3057 os <<
" bucketSizeDurationMs: "
3058 << (int)it->logicalChannelConfig.bucketSizeDurationMs << std::endl;
3059 os <<
" logicalChannelGroup: " << (int)it->logicalChannelConfig.logicalChannelGroup
3064 os <<
" drbToAddModList: " << std::endl;
3066 for (; it2 != radioResourceConfigDedicated.
drbToAddModList.end(); it2++)
3068 os <<
" epsBearerIdentity: " << (int)it2->epsBearerIdentity << std::endl;
3069 os <<
" drbIdentity: " << (int)it2->drbIdentity << std::endl;
3070 os <<
" rlcConfig: " << it2->rlcConfig.choice << std::endl;
3071 os <<
" logicalChannelIdentity: " << (int)it2->logicalChannelIdentity << std::endl;
3072 os <<
" logicalChannelConfig: " << std::endl;
3073 os <<
" priority: " << (int)it2->logicalChannelConfig.priority << std::endl;
3074 os <<
" prioritizedBitRateKbps: "
3075 << (int)it2->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
3076 os <<
" bucketSizeDurationMs: "
3077 << (int)it2->logicalChannelConfig.bucketSizeDurationMs << std::endl;
3078 os <<
" logicalChannelGroup: " << (int)it2->logicalChannelConfig.logicalChannelGroup
3083 os <<
" drbToReleaseList: ";
3087 os << (int)*it3 <<
", ";
3091 os <<
" havePhysicalConfigDedicated: "
3096 os <<
" physicalConfigDedicated: " << std::endl;
3098 os <<
" haveSoundingRsUlConfigDedicated: "
3103 os <<
" soundingRsUlConfigDedicated: " << std::endl;
3108 os <<
" srsBandwidth: "
3112 os <<
" srsConfigIndex: "
3118 os <<
" haveAntennaInfoDedicated: "
3123 os <<
" antennaInfo Tx mode: "
3136 std::bitset<0> bitset0;
3139 std::bitset<3> sysInfoBlkT1Opts;
3143 std::bitset<1> cellAccessRelatedInfoOpts;
3147 int numPlmnIdentityInfoElements;
3149 for (
int i = 0; i < numPlmnIdentityInfoElements; i++)
3160 std::bitset<16> trackingAreaCode;
3164 std::bitset<28> cellIdentity;
3179 if (cellAccessRelatedInfoOpts[0])
3182 std::bitset<27> csgIdentity;
3188 std::bitset<1> qRxLevMinOffsetPresent;
3191 if (qRxLevMinOffsetPresent[0])
3197 if (sysInfoBlkT1Opts[2])
3207 int numSchedulingInfo;
3209 for (
int i = 0; i < numSchedulingInfo; i++)
3216 for (
int j = 0; j < numSibType; j++)
3222 if (sysInfoBlkT1Opts[1])
3234 if (sysInfoBlkT1Opts[0])
3247 std::bitset<0> bitset0;
3250 std::bitset<2> sysInfoBlkT2Opts;
3252 if (sysInfoBlkT2Opts[1])
3273 std::bitset<2> freqInfoOpts;
3275 if (freqInfoOpts[1])
3281 if (freqInfoOpts[0])
3291 if (sysInfoBlkT2Opts[0])
3308 std::bitset<0> bitset0;
3311 std::bitset<9> rrCfgCommOptions;
3315 if (rrCfgCommOptions[8])
3322 std::bitset<1> prachConfigInfoPresent;
3329 if (prachConfigInfoPresent[0])
3335 if (rrCfgCommOptions[7])
3376 if (rrCfgCommOptions[6])
3382 if (rrCfgCommOptions[5])
3388 if (rrCfgCommOptions[4])
3394 if (rrCfgCommOptions[3])
3400 if (rrCfgCommOptions[2])
3406 if (rrCfgCommOptions[1])
3412 if (rrCfgCommOptions[0])
3427 std::bitset<0> bitset0;
3433 std::bitset<1> preamblesGroupAConfigPresent;
3492 if (preamblesGroupAConfigPresent[0])
3607 std::bitset<0> bitset0;
3626 std::bitset<1> prachConfigInfoPresent;
3631 if (prachConfigInfoPresent[0])
3720 std::bitset<4> measResultOptionalPresent;
3743 int measResultNeighCellsChoice;
3746 bIterator =
DeserializeChoice(4,
false, &measResultNeighCellsChoice, bIterator);
3748 if (measResultNeighCellsChoice == 0)
3754 for (
int i = 0; i < numElems; i++)
3758 std::bitset<1> isCgiInfoPresent;
3765 measResultEutra.
haveCgiInfo = isCgiInfoPresent[0];
3766 if (isCgiInfoPresent[0])
3768 std::bitset<1> havePlmnIdentityList;
3779 std::bitset<28> cellId;
3784 std::bitset<16> trArCo;
3789 if (havePlmnIdentityList[0])
3794 for (
int j = 0; j < numPlmnElems; j++)
3804 std::bitset<2> measResultOpts;
3808 if (measResultOpts[1])
3816 if (measResultOpts[0])
3827 if (measResultNeighCellsChoice == 1)
3833 if (measResultNeighCellsChoice == 2)
3838 if (measResultNeighCellsChoice == 3)
3848 for (
int i = 0; i < numElems; i++)
3853 std::bitset<2> measResultScellPresent;
3898 std::bitset<1> isMccPresent;
3901 if (isMccPresent[0])
3912 for (
int j = mncDigits - 1; j >= 0; j--)
3915 mnc += n * pow(10, j);
3928 std::bitset<0> bitset0;
3929 std::bitset<2> bitset2;
3930 std::bitset<11> bitset11;
3939 int measObjectToRemoveListElems;
3943 for (
int i = 0; i < measObjectToRemoveListElems; i++)
3953 int measObjectToAddModListElems;
3957 for (
int i = 0; i < measObjectToAddModListElems; i++)
3966 int measObjectChoice;
3969 switch (measObjectChoice)
3987 std::bitset<5> measObjectEutraOpts;
4009 if (measObjectEutraOpts[4])
4015 for (
int i = 0; i < numElems; i++)
4022 if (measObjectEutraOpts[3])
4028 for (
int i = 0; i < numElems; i++)
4050 if (measObjectEutraOpts[2])
4056 for (
int i = 0; i < numElems; i++)
4063 if (measObjectEutraOpts[1])
4069 for (
int i = 0; i < numElems; i++)
4078 std::bitset<1> isRangePresent;
4146 if (measObjectEutraOpts[0])
4160 int reportConfigToRemoveListElems;
4166 for (
int i = 0; i < reportConfigToRemoveListElems; i++)
4176 int reportConfigToAddModListElems;
4182 for (
int i = 0; i < reportConfigToAddModListElems; i++)
4191 int reportConfigChoice;
4194 if (reportConfigChoice == 0)
4200 int triggerTypeChoice;
4203 if (triggerTypeChoice == 0)
4213 switch (eventIdChoice)
4313 if (triggerTypeChoice == 1)
4442 if (reportConfigChoice == 1)
4455 int measIdToRemoveListElems;
4458 for (
int i = 0; i < measIdToRemoveListElems; i++)
4468 int measIdToAddModListElems;
4471 for (
int i = 0; i < measIdToAddModListElems; i++)
4494 std::bitset<4> quantityConfigOpts;
4497 if (quantityConfigOpts[3])
4610 if (quantityConfigOpts[2])
4615 if (quantityConfigOpts[1])
4620 if (quantityConfigOpts[0])
4631 int measGapConfigChoice;
4633 switch (measGapConfigChoice)
4644 int gapOffsetChoice;
4646 switch (gapOffsetChoice)
4680 int speedStateParsChoice;
4682 switch (speedStateParsChoice)
4761 m_mmec = std::bitset<8>(0UL);
4762 m_mTmsi = std::bitset<32>(0UL);
4764 m_spare = std::bitset<1>(0UL);
4783 os <<
"MMEC:" <<
m_mmec << std::endl;
4784 os <<
"MTMSI:" <<
m_mTmsi << std::endl;
4786 os <<
"Spare: " <<
m_spare << std::endl;
4835 std::bitset<1> dummy;
4836 std::bitset<0> optionalOrDefaultMask;
4913 os <<
"radioResourceConfigDedicated:" << std::endl;
4961 std::bitset<0> bitset0;
4962 std::bitset<1> bitset1;
4963 std::bitset<2> bitset2;
4977 int criticalExtensionChoice;
4979 if (criticalExtensionChoice == 1)
4984 else if (criticalExtensionChoice == 0)
5048std::list<LteRrcSap::SrbToAddMod>
5054std::list<LteRrcSap::DrbToAddMod>
5120 std::bitset<0> bitset0;
5223 std::bitset<0> bitset0;
5310 std::bitset<6> options;
5313 options.set(3,
false);
5315 options.set(1,
false);
5330 std::bitset<4> mobCtrlIntoOptional;
5333 mobCtrlIntoOptional.set(1,
false);
5385 std::bitset<2> noncriticalExtension_v890;
5386 noncriticalExtension_v890.set(1,
false);
5387 noncriticalExtension_v890.set(
5396 std::bitset<3> noncriticalExtension_v920;
5397 noncriticalExtension_v920.set(1,
false);
5398 noncriticalExtension_v920.set(1,
false);
5400 noncriticalExtension_v920.set(
5417 std::bitset<0> bitset0;
5446 else if (c1Chosen == 0)
5449 std::bitset<6> rrcConnRecOpts;
5462 std::bitset<4> mobCtrlOpts;
5473 std::bitset<1> ulCarrierFreqPresent;
5479 if (ulCarrierFreqPresent[0])
5490 std::bitset<1> ulBandwidthPresent;
5496 if (ulBandwidthPresent[0])
5513 std::bitset<16> cRnti;
5534 if (rrcConnRecOpts[3])
5548 if (rrcConnRecOpts[1])
5576 os <<
" measObjectToRemoveList: ";
5577 std::list<uint8_t> auxList =
m_measConfig.measObjectToRemoveList;
5578 auto it = auxList.begin();
5579 for (; it != auxList.end(); it++)
5581 os << (int)*it <<
", ";
5587 os <<
" reportConfigToRemoveList: ";
5588 std::list<uint8_t> auxList =
m_measConfig.reportConfigToRemoveList;
5589 auto it = auxList.begin();
5590 for (; it != auxList.end(); it++)
5592 os << (int)*it <<
", ";
5598 os <<
" measIdToRemoveList: ";
5599 std::list<uint8_t> auxList =
m_measConfig.measIdToRemoveList;
5600 auto it = auxList.begin();
5601 for (; it != auxList.end(); it++)
5603 os << (int)*it <<
", ";
5610 os <<
" measObjectToAddMod: " << std::endl;
5611 std::list<LteRrcSap::MeasObjectToAddMod> auxList =
m_measConfig.measObjectToAddModList;
5612 auto it = auxList.begin();
5613 for (; it != auxList.end(); it++)
5615 os <<
" measObjectId: " << (int)it->measObjectId << std::endl;
5616 os <<
" carrierFreq: " << (int)it->measObjectEutra.carrierFreq << std::endl;
5617 os <<
" allowedMeasBandwidth: " << (int)it->measObjectEutra.allowedMeasBandwidth
5619 os <<
" presenceAntennaPort1: " << it->measObjectEutra.presenceAntennaPort1
5621 os <<
" neighCellConfig: " << (int)it->measObjectEutra.neighCellConfig
5623 os <<
" offsetFreq: " << (int)it->measObjectEutra.offsetFreq << std::endl;
5625 if (!it->measObjectEutra.cellsToRemoveList.empty())
5627 os <<
" cellsToRemoveList: ";
5628 std::list<uint8_t> auxList = it->measObjectEutra.cellsToRemoveList;
5629 auto it = auxList.begin();
5630 for (; it != auxList.end(); it++)
5632 os << (int)*it <<
", ";
5637 if (!it->measObjectEutra.blackCellsToRemoveList.empty())
5639 os <<
" blackCellsToRemoveList: ";
5640 std::list<uint8_t> auxList = it->measObjectEutra.blackCellsToRemoveList;
5641 auto it = auxList.begin();
5642 for (; it != auxList.end(); it++)
5644 os << (int)*it <<
", ";
5649 if (!it->measObjectEutra.cellsToAddModList.empty())
5651 os <<
" cellsToAddModList: " << std::endl;
5652 std::list<LteRrcSap::CellsToAddMod> auxList =
5653 it->measObjectEutra.cellsToAddModList;
5654 auto it = auxList.begin();
5655 for (; it != auxList.end(); it++)
5657 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5658 os <<
" physCellId: " << (int)it->physCellId << std::endl;
5659 os <<
" cellIndividualOffset: " << (int)it->cellIndividualOffset
5661 os <<
" ------ " << std::endl;
5665 if (!it->measObjectEutra.blackCellsToAddModList.empty())
5667 os <<
" blackCellsToAddModList: " << std::endl;
5668 std::list<LteRrcSap::BlackCellsToAddMod> auxList =
5669 it->measObjectEutra.blackCellsToAddModList;
5670 auto it = auxList.begin();
5671 for (; it != auxList.end(); it++)
5673 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5674 os <<
" physCellIdRange.start: " << (int)it->physCellIdRange.start
5676 os <<
" physCellIdRange.haveRange: " << it->physCellIdRange.haveRange
5678 os <<
" physCellIdRange.range: " << (int)it->physCellIdRange.range
5680 os <<
" ------ " << std::endl;
5684 os <<
" haveCellForWhichToReportCGI: "
5685 << it->measObjectEutra.haveCellForWhichToReportCGI << std::endl;
5686 os <<
" cellForWhichToReportCGI: "
5687 << (int)it->measObjectEutra.cellForWhichToReportCGI << std::endl;
5688 os <<
" ------------- " << std::endl;
5694 os <<
" reportConfigToAddModList: " << std::endl;
5695 std::list<LteRrcSap::ReportConfigToAddMod> auxList =
5697 auto it = auxList.begin();
5698 for (; it != auxList.end(); it++)
5700 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5701 os <<
" reportConfigEutra.triggerType "
5702 << (int)it->reportConfigEutra.triggerType << std::endl;
5705 os <<
" reportConfigEutra.eventId " << (int)it->reportConfigEutra.eventId
5709 os <<
" reportConfigEutra.reportOnLeave "
5710 << (int)it->reportConfigEutra.reportOnLeave << std::endl;
5711 os <<
" reportConfigEutra.a3Offset "
5712 << (int)it->reportConfigEutra.a3Offset << std::endl;
5716 os <<
" reportConfigEutra.threshold1.choice "
5717 << (int)it->reportConfigEutra.threshold1.choice << std::endl;
5718 os <<
" reportConfigEutra.threshold1.range "
5719 << (int)it->reportConfigEutra.threshold1.range << std::endl;
5722 os <<
" reportConfigEutra.threshold2.choice "
5723 << (int)it->reportConfigEutra.threshold2.choice << std::endl;
5724 os <<
" reportConfigEutra.threshold2.range "
5725 << (int)it->reportConfigEutra.threshold2.range << std::endl;
5728 os <<
" reportConfigEutra.hysteresis "
5729 << (int)it->reportConfigEutra.hysteresis << std::endl;
5730 os <<
" reportConfigEutra.timeToTrigger "
5731 << (int)it->reportConfigEutra.timeToTrigger << std::endl;
5735 os <<
" reportConfigEutra.purpose " << (int)it->reportConfigEutra.purpose
5738 os <<
" reportConfigEutra.triggerQuantity "
5739 << (int)it->reportConfigEutra.triggerQuantity << std::endl;
5740 os <<
" reportConfigEutra.reportQuantity "
5741 << (int)it->reportConfigEutra.reportQuantity << std::endl;
5742 os <<
" reportConfigEutra.maxReportCells "
5743 << (int)it->reportConfigEutra.maxReportCells << std::endl;
5744 os <<
" reportConfigEutra.reportInterval "
5745 << (int)it->reportConfigEutra.reportInterval << std::endl;
5746 os <<
" reportConfigEutra.reportAmount "
5747 << (int)it->reportConfigEutra.reportAmount << std::endl;
5753 os <<
" measIdToAddModList: " << std::endl;
5754 std::list<LteRrcSap::MeasIdToAddMod> auxList =
m_measConfig.measIdToAddModList;
5755 auto it = auxList.begin();
5756 for (; it != auxList.end(); it++)
5758 os <<
" measId: " << (int)it->measId << std::endl;
5759 os <<
" measObjectId: " << (int)it->measObjectId << std::endl;
5760 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5761 os <<
" ------ " << std::endl;
5765 os <<
" haveQuantityConfig: " <<
m_measConfig.haveQuantityConfig << std::endl;
5768 os <<
" filterCoefficientRSRP: "
5769 << (int)
m_measConfig.quantityConfig.filterCoefficientRSRP << std::endl;
5770 os <<
" filterCoefficientRSRQ:"
5771 << (int)
m_measConfig.quantityConfig.filterCoefficientRSRQ << std::endl;
5774 os <<
" haveMeasGapConfig: " <<
m_measConfig.haveMeasGapConfig << std::endl;
5777 os <<
" measGapConfig.type: " <<
m_measConfig.measGapConfig.type << std::endl;
5778 os <<
" measGapConfig.gap (gap0/1,value): ("
5780 << (int)
m_measConfig.measGapConfig.gapOffsetValue <<
")" << std::endl;
5783 os <<
" haveSmeasure: " <<
m_measConfig.haveSmeasure << std::endl;
5786 os <<
" sMeasure: " << (int)
m_measConfig.sMeasure << std::endl;
5789 os <<
" haveSpeedStatePars: " <<
m_measConfig.haveSpeedStatePars << std::endl;
5792 os <<
" speedStatePars.type: " <<
m_measConfig.speedStatePars.type << std::endl;
5793 os <<
" speedStatePars.mobilityStateParameters.tEvaluation: "
5794 << (int)
m_measConfig.speedStatePars.mobilityStateParameters.tEvaluation << std::endl;
5795 os <<
" speedStatePars.mobilityStateParameters.tHystNormal: "
5796 << (int)
m_measConfig.speedStatePars.mobilityStateParameters.tHystNormal << std::endl;
5797 os <<
" speedStatePars.mobilityStateParameters.nCellChangeMedium: "
5798 << (int)
m_measConfig.speedStatePars.mobilityStateParameters.nCellChangeMedium
5800 os <<
" speedStatePars.mobilityStateParameters.nCellChangeHigh: "
5801 << (int)
m_measConfig.speedStatePars.mobilityStateParameters.nCellChangeHigh
5803 os <<
" speedStatePars.timeToTriggerSf.sfMedium: "
5804 << (int)
m_measConfig.speedStatePars.timeToTriggerSf.sfMedium << std::endl;
5805 os <<
" speedStatePars.timeToTriggerSf.sfHigh: "
5806 << (int)
m_measConfig.speedStatePars.timeToTriggerSf.sfHigh << std::endl;
5817 os <<
" carrierFreq.dlCarrierFreq: "
5819 os <<
" carrierFreq.dlCarrierFreq: "
5825 os <<
" carrierBandwidth.dlBandwidth: "
5827 os <<
" carrierBandwidth.ulBandwidth: "
5835 os <<
"raPreambleIndex: "
5837 os <<
"raPrachMaskIndex: "
5942std::list<LteRrcSap::SrbToAddMod>
5948std::list<LteRrcSap::DrbToAddMod>
5991 std::bitset<4> handoverPrepInfoOpts;
5992 handoverPrepInfoOpts.set(3,
true);
5993 handoverPrepInfoOpts.set(2,
false);
5994 handoverPrepInfoOpts.set(1,
false);
5995 handoverPrepInfoOpts.set(0,
false);
6029 m_asConfig.sourceMasterInformationBlock.systemFrameNumber));
6052 std::bitset<0> bitset0;
6060 int criticalExtensionsChosen;
6063 if (criticalExtensionsChosen == 1)
6068 else if (criticalExtensionsChosen == 0)
6077 else if (c1Chosen == 0)
6080 std::bitset<4> handoverPrepInfoOpts;
6085 for (
int i = 0; i < n; i++)
6091 if (handoverPrepInfoOpts[3])
6110 std::bitset<16> cRnti;
6112 m_asConfig.sourceUeIdentity = cRnti.to_ulong();
6125 std::bitset<8> systemFrameNumber;
6127 m_asConfig.sourceMasterInformationBlock.systemFrameNumber =
6128 systemFrameNumber.to_ulong();
6130 std::bitset<10> spare;
6135 &
m_asConfig.sourceSystemInformationBlockType1,
6140 &
m_asConfig.sourceSystemInformationBlockType2,
6151 if (handoverPrepInfoOpts[2])
6156 if (handoverPrepInfoOpts[1])
6161 if (handoverPrepInfoOpts[0])
6176 os <<
"sourceUeIdentity: " <<
m_asConfig.sourceUeIdentity << std::endl;
6177 os <<
"dlBandwidth: " << (int)
m_asConfig.sourceMasterInformationBlock.dlBandwidth << std::endl;
6178 os <<
"systemFrameNumber: " << (int)
m_asConfig.sourceMasterInformationBlock.systemFrameNumber
6180 os <<
"plmnIdentityInfo.plmnIdentity: "
6181 << (int)
m_asConfig.sourceSystemInformationBlockType1.cellAccessRelatedInfo.plmnIdentityInfo
6184 os <<
"cellAccessRelatedInfo.cellIdentity "
6185 << (int)
m_asConfig.sourceSystemInformationBlockType1.cellAccessRelatedInfo.cellIdentity
6187 os <<
"cellAccessRelatedInfo.csgIndication: "
6188 <<
m_asConfig.sourceSystemInformationBlockType1.cellAccessRelatedInfo.csgIndication
6190 os <<
"cellAccessRelatedInfo.csgIdentity: "
6191 << (int)
m_asConfig.sourceSystemInformationBlockType1.cellAccessRelatedInfo.csgIdentity
6193 os <<
"sourceDlCarrierFreq: " <<
m_asConfig.sourceDlCarrierFreq << std::endl;
6282 std::bitset<0> bitset0;
6307 std::bitset<16> cRnti;
6317 std::bitset<16> shortMacI;
6339 std::bitset<2> spare;
6349 os <<
"ueIdentity.cRnti: " << (int)
m_ueIdentity.cRnti << std::endl;
6350 os <<
"ueIdentity.physCellId: " << (int)
m_ueIdentity.physCellId << std::endl;
6432 std::bitset<0> bitset0;
6446 int criticalExtensionsChoice;
6448 if (criticalExtensionsChoice == 1)
6453 else if (criticalExtensionsChoice == 0)
6466 std::bitset<1> nonCriticalExtensionPresent;
6485 os <<
"RadioResourceConfigDedicated: " << std::endl;
6553 std::bitset<0> bitset0;
6567 int criticalExtensionsChoice;
6569 if (criticalExtensionsChoice == 1)
6574 else if (criticalExtensionsChoice == 0)
6577 std::bitset<1> opts;
6653 std::bitset<0> bitset0;
6662 int criticalExtensionsChoice;
6664 if (criticalExtensionsChoice == 1)
6669 else if (criticalExtensionsChoice == 0)
6672 std::bitset<1> opts;
6748 std::bitset<0> bitset0;
6762 int criticalExtensionsChoice;
6764 if (criticalExtensionsChoice == 1)
6769 else if (criticalExtensionsChoice == 0)
6778 std::bitset<3> opts;
6870 std::bitset<0> bitset0;
6880 int criticalExtensionsChoice;
6882 if (criticalExtensionsChoice == 1)
6887 else if (criticalExtensionsChoice == 0)
6897 else if (c1Choice == 0)
6900 std::bitset<1> opts;
6980 std::bitset<0> bitset0;
6986 int criticalExtensionsChoice;
6989 if (criticalExtensionsChoice == 1)
6994 else if (criticalExtensionsChoice == 0)
7007 std::bitset<1> isNonCriticalExtensionPresent;
7013 if (isNonCriticalExtensionPresent[0])
7032 os <<
"haveMeasResultNeighCells = "
7037 std::list<LteRrcSap::MeasResultEutra> measResultListEutra =
7039 auto it = measResultListEutra.begin();
7040 for (; it != measResultListEutra.end(); it++)
7042 os <<
" physCellId =" << (int)it->physCellId << std::endl;
7043 os <<
" haveCgiInfo =" << it->haveCgiInfo << std::endl;
7044 if (it->haveCgiInfo)
7046 os <<
" plmnIdentity = " << (int)it->cgiInfo.plmnIdentity << std::endl;
7047 os <<
" cellIdentity = " << (int)it->cgiInfo.cellIdentity << std::endl;
7048 os <<
" trackingAreaCode = " << (int)it->cgiInfo.trackingAreaCode << std::endl;
7049 os <<
" havePlmnIdentityList = " << !it->cgiInfo.plmnIdentityList.empty()
7051 if (!it->cgiInfo.plmnIdentityList.empty())
7053 for (
auto it2 = it->cgiInfo.plmnIdentityList.begin();
7054 it2 != it->cgiInfo.plmnIdentityList.end();
7057 os <<
" plmnId : " << *it2 << std::endl;
7062 os <<
" haveRsrpResult =" << it->haveRsrpResult << std::endl;
7063 if (it->haveRsrpResult)
7065 os <<
" rsrpResult =" << (int)it->rsrpResult << std::endl;
7068 os <<
" haveRsrqResult =" << it->haveRsrqResult << std::endl;
7069 if (it->haveRsrqResult)
7071 os <<
" rsrqResult =" << (int)it->rsrqResult << std::endl;
7112 std::cout <<
"UL DCCH MSG TYPE: " <<
m_messageType << std::endl;
7124 std::bitset<0> bitset0;
7174 std::cout <<
"DL DCCH MSG TYPE: " <<
m_messageType << std::endl;
7186 std::bitset<0> bitset0;
7236 std::cout <<
"UL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7248 std::bitset<0> bitset0;
7298 std::cout <<
"DL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7310 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.
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
BlackCellsToAddMod structure.
uint8_t cellIndex
cell index
PhysCellIdRange physCellIdRange
Phy cell ID range.
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.
MobilityControlInfo structure.
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.
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.
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.
uint8_t hysteresis
Parameter used within the entry and leave condition of an event triggered reporting condition.
enum ns3::LteRrcSap::ReportConfigEutra::@174152020357172127004302246116267001242110156064 eventId
Event enumeration.
uint8_t reportAmount
Number of measurement reports applicable, always assumed to be infinite.
enum ns3::LteRrcSap::ReportConfigEutra::@374136270164373156154156077265266160331034212212 triggerQuantity
Trigger type enumeration.
@ EVENT_A2
Event A2: Serving becomes worse than absolute threshold.
@ EVENT_A3
Event A3: Neighbour becomes amount of offset better than PCell.
@ EVENT_A4
Event A4: Neighbour becomes better than absolute threshold.
@ EVENT_A1
Event A1: Serving becomes better than absolute threshold.
@ EVENT_A5
Event A5: PCell becomes worse than absolute threshold1 AND Neighbour becomes better than another abso...
ThresholdEutra threshold2
Threshold for event A5.
enum ns3::LteRrcSap::ReportConfigEutra::@052114161037202132004365346027213360353343030201 reportInterval
Report interval enumeration.
enum ns3::LteRrcSap::ReportConfigEutra::@347136032026324172236035053024104342310355304375 triggerType
Trigger enumeration.
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5.
@ RSRP
Reference Signal Received Power.
@ RSRQ
Reference Signal Received Quality.
@ BOTH
Both the RSRP and RSRQ quantities are to be included in the measurement report.
@ SAME_AS_TRIGGER_QUANTITY
@ PERIODICAL
periodical report
enum ns3::LteRrcSap::ReportConfigEutra::@144363074020234244076040076052042351213163213352 reportQuantity
Report type enumeration.
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.
RrcConnectionRelease structure.
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.
uint8_t range
Value range used in RSRP/RSRQ threshold.
enum ns3::LteRrcSap::ThresholdEutra::@200372075340144231162262002242030206054121013015 choice
Threshold enumeration.
@ THRESHOLD_RSRP
RSRP is used for the threshold.
@ THRESHOLD_RSRQ
RSRQ is used for the 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