23 #include "ns3/lte-rrc-header.h"
31 #define MAX_EARFCN 262143
32 #define MAX_RAT_CAPABILITIES 8
33 #define MAX_SI_MESSAGE 32
36 #define MAX_REPORT_CONFIG_ID 32
37 #define MAX_OBJECT_ID 32
38 #define MAX_MEAS_ID 32
39 #define MAX_CELL_MEAS 32
40 #define MAX_CELL_REPORT 8
42 #define MAX_SCELL_REPORT 5
43 #define MAX_SCELL_CONF 5
141 std::list<LteRrcSap::DrbToAddMod>::iterator it = drbToAddModList.begin();
142 for (; it != drbToAddModList.end(); it++)
146 std::bitset<5> drbToAddModListOptionalFieldsPresent = std::bitset<5>();
147 drbToAddModListOptionalFieldsPresent.set(4, 1);
148 drbToAddModListOptionalFieldsPresent.set(3, 0);
149 drbToAddModListOptionalFieldsPresent.set(2, 1);
150 drbToAddModListOptionalFieldsPresent.set(1, 1);
151 drbToAddModListOptionalFieldsPresent.set(0, 1);
160 switch (it->rlcConfig.choice)
229 std::list<LteRrcSap::SrbToAddMod>::iterator it = srbToAddModList.begin();
230 for (; it != srbToAddModList.end(); it++)
234 std::bitset<2> srbToAddModListOptionalFieldsPresent = std::bitset<2>();
235 srbToAddModListOptionalFieldsPresent.set(1, 0);
236 srbToAddModListOptionalFieldsPresent.set(0, 1);
267 int prioritizedBitRate;
271 prioritizedBitRate = 0;
274 prioritizedBitRate = 1;
277 prioritizedBitRate = 2;
280 prioritizedBitRate = 3;
283 prioritizedBitRate = 4;
286 prioritizedBitRate = 5;
289 prioritizedBitRate = 6;
292 prioritizedBitRate = 7;
297 int bucketSizeDuration;
301 bucketSizeDuration = 0;
304 bucketSizeDuration = 1;
307 bucketSizeDuration = 2;
310 bucketSizeDuration = 3;
313 bucketSizeDuration = 4;
316 bucketSizeDuration = 5;
319 bucketSizeDuration = 5;
332 std::bitset<10> optionalFieldsPhysicalConfigDedicated;
333 optionalFieldsPhysicalConfigDedicated.set(
336 optionalFieldsPhysicalConfigDedicated.set(8, 0);
337 optionalFieldsPhysicalConfigDedicated.set(7, 0);
338 optionalFieldsPhysicalConfigDedicated.set(6, 0);
339 optionalFieldsPhysicalConfigDedicated.set(5, 0);
340 optionalFieldsPhysicalConfigDedicated.set(4, 0);
341 optionalFieldsPhysicalConfigDedicated.set(3, 0);
342 optionalFieldsPhysicalConfigDedicated.set(
345 optionalFieldsPhysicalConfigDedicated.set(
348 optionalFieldsPhysicalConfigDedicated.set(0, 0);
437 bool isSrbToAddModListPresent = !radioResourceConfigDedicated.
srbToAddModList.empty();
438 bool isDrbToAddModListPresent = !radioResourceConfigDedicated.
drbToAddModList.empty();
439 bool isDrbToReleaseListPresent = !radioResourceConfigDedicated.
drbToReleaseList.empty();
442 std::bitset<6> optionalFieldsPresent = std::bitset<6>();
443 optionalFieldsPresent.set(5, isSrbToAddModListPresent);
444 optionalFieldsPresent.set(4, isDrbToAddModListPresent);
445 optionalFieldsPresent.set(3, isDrbToReleaseListPresent);
446 optionalFieldsPresent.set(2, 0);
447 optionalFieldsPresent.set(1, 0);
448 optionalFieldsPresent.set(0,
453 if (isSrbToAddModListPresent)
459 if (isDrbToAddModListPresent)
465 if (isDrbToReleaseListPresent)
468 std::list<uint8_t>::iterator it = radioResourceConfigDedicated.
drbToReleaseList.begin();
487 std::bitset<3> sysInfoBlk1Opts;
488 sysInfoBlk1Opts.set(2, 0);
489 sysInfoBlk1Opts.set(1, 0);
490 sysInfoBlk1Opts.set(0, 0);
550 std::bitset<9> rrCfgCmmOpts;
551 rrCfgCmmOpts.set(8, 1);
552 rrCfgCmmOpts.set(7, 0);
553 rrCfgCmmOpts.set(6, 0);
554 rrCfgCmmOpts.set(5, 0);
555 rrCfgCmmOpts.set(4, 0);
556 rrCfgCmmOpts.set(3, 0);
557 rrCfgCmmOpts.set(2, 0);
558 rrCfgCmmOpts.set(1, 0);
559 rrCfgCmmOpts.set(0, 0);
694 std::bitset<4> measResultOptional;
696 measResultOptional.set(2,
false);
697 measResultOptional.set(1,
false);
722 std::list<LteRrcSap::MeasResultEutra>::iterator it;
746 if (!it->cgiInfo.plmnIdentityList.empty())
749 std::list<uint32_t>::iterator it2;
750 for (it2 = it->cgiInfo.plmnIdentityList.begin();
751 it2 != it->cgiInfo.plmnIdentityList.end();
760 std::bitset<2> measResultFieldsPresent;
761 measResultFieldsPresent[1] = it->haveRsrpResult;
762 measResultFieldsPresent[0] = it->haveRsrqResult;
765 if (it->haveRsrpResult)
770 if (it->haveRsrqResult)
786 std::bitset<2> measResultServFreqPresent;
787 measResultServFreqPresent[0] = it.haveMeasResultSCell;
788 measResultServFreqPresent[1] = it.haveMeasResultBestNeighCell;
794 if (it.haveMeasResultSCell)
803 if (it.haveMeasResultBestNeighCell)
815 NS_ASSERT(!it.haveMeasResultBestNeighCell);
827 int nDig = (plmnId > 99) ? 3 : 2;
830 for (
int i = nDig - 1; i >= 0; i--)
832 int n = floor(plmnId / pow(10, i));
834 plmnId -= n * pow(10, i);
1007 switch (qOffsetRange)
1110 switch (thresholdEutra.
choice)
1128 std::bitset<11> measConfigOptional;
1138 measConfigOptional.set(1,
false);
1156 for (std::list<LteRrcSap::MeasObjectToAddMod>::iterator it =
1166 std::bitset<5> measObjOpts;
1167 measObjOpts.set(4, !it->measObjectEutra.cellsToRemoveList.empty());
1168 measObjOpts.set(3, !it->measObjectEutra.cellsToAddModList.empty());
1169 measObjOpts.set(2, !it->measObjectEutra.blackCellsToRemoveList.empty());
1170 measObjOpts.set(1, !it->measObjectEutra.blackCellsToAddModList.empty());
1171 measObjOpts.set(0, it->measObjectEutra.haveCellForWhichToReportCGI);
1184 if (!it->measObjectEutra.cellsToRemoveList.empty())
1187 for (std::list<uint8_t>::iterator it2 =
1188 it->measObjectEutra.cellsToRemoveList.begin();
1189 it2 != it->measObjectEutra.cellsToRemoveList.end();
1196 if (!it->measObjectEutra.cellsToAddModList.empty())
1199 for (std::list<LteRrcSap::CellsToAddMod>::iterator it2 =
1200 it->measObjectEutra.cellsToAddModList.begin();
1201 it2 != it->measObjectEutra.cellsToAddModList.end();
1217 if (!it->measObjectEutra.blackCellsToRemoveList.empty())
1222 for (std::list<uint8_t>::iterator it2 =
1223 it->measObjectEutra.blackCellsToRemoveList.begin();
1224 it2 != it->measObjectEutra.blackCellsToRemoveList.end();
1231 if (!it->measObjectEutra.blackCellsToAddModList.empty())
1236 for (std::list<LteRrcSap::BlackCellsToAddMod>::iterator it2 =
1237 it->measObjectEutra.blackCellsToAddModList.begin();
1238 it2 != it->measObjectEutra.blackCellsToAddModList.end();
1246 std::bitset<1> rangePresent = std::bitset<1>(it2->physCellIdRange.haveRange);
1249 if (it2->physCellIdRange.haveRange)
1251 switch (it2->physCellIdRange.range)
1302 if (it->measObjectEutra.haveCellForWhichToReportCGI)
1323 for (std::list<LteRrcSap::ReportConfigToAddMod>::iterator it =
1334 switch (it->reportConfigEutra.triggerType)
1339 switch (it->reportConfigEutra.purpose)
1353 switch (it->reportConfigEutra.eventId)
1386 switch (it->reportConfigEutra.timeToTrigger)
1450 if (it->reportConfigEutra.reportQuantity ==
1464 switch (it->reportConfigEutra.reportInterval)
1517 switch (it->reportConfigEutra.reportAmount)
1560 for (std::list<LteRrcSap::MeasIdToAddMod>::iterator it =
1575 std::bitset<4> quantityConfigOpts(0);
1576 quantityConfigOpts.set(3, 1);
1820 std::bitset<3> noncriticalExtension_v1020;
1821 noncriticalExtension_v1020.set(
1824 noncriticalExtension_v1020.set(
1827 noncriticalExtension_v1020.set(
1846 std::bitset<4> sCellToAddMod_r10;
1847 sCellToAddMod_r10.set(3, 1);
1848 sCellToAddMod_r10.set(2, 1);
1849 sCellToAddMod_r10.set(1, 1);
1850 sCellToAddMod_r10.set(
1852 it.haveRadioResourceConfigDedicatedSCell);
1857 std::bitset<2> cellIdentification_r10;
1858 cellIdentification_r10.set(1, 1);
1859 cellIdentification_r10.set(0, 1);
1868 if (it.haveRadioResourceConfigDedicatedSCell)
1882 std::bitset<2> radioResourceConfigCommonSCell_r10;
1890 std::bitset<5> nonUlConfiguration_r10;
1891 nonUlConfiguration_r10.set(4, 1);
1892 nonUlConfiguration_r10.set(3, 1);
1893 nonUlConfiguration_r10.set(2, 0);
1894 nonUlConfiguration_r10.set(1, 1);
1895 nonUlConfiguration_r10.set(0, 0);
1900 std::bitset<1> antennaInfoCommon_r10;
1901 antennaInfoCommon_r10.set(0, 1);
1905 std::bitset<2> pdschConfigCommon_r10;
1906 pdschConfigCommon_r10.set(1, 1);
1907 pdschConfigCommon_r10.set(0, 1);
1917 std::bitset<7> UlConfiguration_r10;
1918 UlConfiguration_r10.set(6, 1);
1919 UlConfiguration_r10.set(5, 0);
1920 UlConfiguration_r10.set(4, 1);
1921 UlConfiguration_r10.set(3, 0);
1922 UlConfiguration_r10.set(2, 0);
1923 UlConfiguration_r10.set(1, 1);
1924 UlConfiguration_r10.set(0, 0);
1928 std::bitset<3> FreqInfo_r10;
1929 FreqInfo_r10.set(2, 1);
1930 FreqInfo_r10.set(1, 1);
1931 FreqInfo_r10.set(0, 0);
1938 std::bitset<2> UlPowerControlCommonSCell_r10;
1939 UlPowerControlCommonSCell_r10.set(1, 0);
1940 UlPowerControlCommonSCell_r10.set(0, 1);
1949 std::bitset<1> prachConfigSCell_r10;
1950 prachConfigSCell_r10.set(0, 1);
1961 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
1962 RadioResourceConfigDedicatedSCell_r10.set(0, 1);
1973 std::bitset<2> pcdscOpt;
1981 std::bitset<4> nulOpt;
2025 std::bitset<7> ulOpt;
2105 int thresholdEutraChoice;
2109 switch (thresholdEutraChoice)
2114 thresholdEutra->
range = range;
2120 thresholdEutra->
range = range;
2134 *qOffsetRange = -24;
2137 *qOffsetRange = -22;
2140 *qOffsetRange = -20;
2143 *qOffsetRange = -18;
2146 *qOffsetRange = -16;
2149 *qOffsetRange = -14;
2152 *qOffsetRange = -12;
2155 *qOffsetRange = -10;
2236 std::bitset<6> optionalFieldsPresent = std::bitset<6>();
2239 if (optionalFieldsPresent[5])
2246 if (optionalFieldsPresent[4])
2253 if (optionalFieldsPresent[3])
2259 for (
int i = 0; i < n; i++)
2266 if (optionalFieldsPresent[2])
2272 if (optionalFieldsPresent[1])
2279 if (optionalFieldsPresent[0])
2297 srbToAddModList->clear();
2300 for (
int i = 0; i < numElems; i++)
2305 std::bitset<2> optionalFields;
2313 if (optionalFields[1])
2319 if (optionalFields[0])
2338 srbToAddModList->insert(srbToAddModList->end(), srbToAddMod);
2352 drbToAddModList->clear();
2354 for (
int i = 0; i < n; i++)
2358 std::bitset<5> optionalFields;
2361 if (optionalFields[4])
2371 if (optionalFields[3])
2377 if (optionalFields[2])
2384 std::bitset<0> bitset0;
2435 if (optionalFields[1])
2441 if (optionalFields[0])
2447 drbToAddModList->insert(drbToAddModList->end(), drbToAddMod);
2461 std::bitset<1> bitset1;
2471 logicalChannelConfig->
priority = n;
2475 uint16_t prioritizedBitRateKbps;
2480 prioritizedBitRateKbps = 0;
2483 prioritizedBitRateKbps = 8;
2486 prioritizedBitRateKbps = 16;
2489 prioritizedBitRateKbps = 32;
2492 prioritizedBitRateKbps = 64;
2495 prioritizedBitRateKbps = 128;
2498 prioritizedBitRateKbps = 256;
2501 prioritizedBitRateKbps = 10000;
2504 prioritizedBitRateKbps = 10000;
2510 uint16_t bucketSizeDurationMs;
2514 bucketSizeDurationMs = 50;
2517 bucketSizeDurationMs = 100;
2520 bucketSizeDurationMs = 150;
2523 bucketSizeDurationMs = 300;
2526 bucketSizeDurationMs = 500;
2529 bucketSizeDurationMs = 1000;
2532 bucketSizeDurationMs = 1000;
2551 std::bitset<10> optionalFieldPresent;
2555 if (optionalFieldPresent[9])
2558 std::bitset<0> bitset0;
2569 if (optionalFieldPresent[8])
2574 if (optionalFieldPresent[7])
2579 if (optionalFieldPresent[6])
2584 if (optionalFieldPresent[5])
2589 if (optionalFieldPresent[4])
2594 if (optionalFieldPresent[3])
2600 if (optionalFieldPresent[2])
2619 std::bitset<0> bitset0;
2650 if (optionalFieldPresent[1])
2661 std::bitset<1> codebookSubsetRestrictionPresent;
2668 if (codebookSubsetRestrictionPresent[0])
2674 int txantennaselchosen;
2676 if (txantennaselchosen == 0)
2681 else if (txantennaselchosen == 1)
2688 if (optionalFieldPresent[0])
2700 NS_FATAL_ERROR(
"RrcAsn1Header Print() function must also specify "
2701 "LteRrcSap::RadioResourceConfigDedicated as a second argument");
2710 std::bitset<2> nonCriticalExtension_v890;
2713 if (nonCriticalExtension_v890[0])
2716 std::bitset<3> nonCriticalExtension_v920;
2718 if (nonCriticalExtension_v920[0])
2721 std::bitset<3> nonCriticalExtension_v1020;
2724 if (nonCriticalExtension_v1020[2])
2732 for (
int i = 0; i < numElems; i++)
2741 if (nonCriticalExtension_v1020[1])
2749 for (
int i = 0; i < numElems; i++)
2751 std::bitset<4> sCellToAddMod_r10;
2769 if (sCellToAddMod_r10[0])
2786 NS_ASSERT(!nonCriticalExtension_v1020[0]);
2799 std::bitset<2> cellIdentification_r10;
2819 std::bitset<2> radioResourceConfigCommonSCell_r10;
2825 std::bitset<5> nonUlConfiguration_r10;
2831 std::bitset<1> antennaInfoCommon_r10;
2836 std::bitset<2> pdschConfigCommon_r10;
2845 std::bitset<7> UlConfiguration_r10;
2848 std::bitset<3> FreqInfo_r10;
2856 std::bitset<2> UlPowerControlCommonSCell_r10;
2861 std::bitset<1> prachConfigSCell_r10;
2876 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
2877 bIterator =
DeserializeSequence(&RadioResourceConfigDedicatedSCell_r10,
false, bIterator);
2890 std::bitset<2> pcdscOpt;
2896 std::bitset<4> nulOpt;
2914 std::bitset<1> codebookSubsetRestrictionPresent;
2922 if (codebookSubsetRestrictionPresent[0])
2929 int txantennaselchosen;
2931 if (txantennaselchosen == 0)
2936 else if (txantennaselchosen == 1)
2947 std::bitset<0> bitset0;
2961 std::bitset<7> ulOpt;
2982 std::bitset<1> codebookSubsetRestrictionPresent;
2990 if (codebookSubsetRestrictionPresent[0])
2997 int txantennaselchosen;
2999 if (txantennaselchosen == 0)
3004 else if (txantennaselchosen == 1)
3031 std::bitset<0> bitset0;
3070 os <<
" srbToAddModList: " << std::endl;
3071 std::list<LteRrcSap::SrbToAddMod>::iterator it =
3073 for (; it != radioResourceConfigDedicated.
srbToAddModList.end(); it++)
3075 os <<
" srbIdentity: " << (
int)it->srbIdentity << std::endl;
3076 os <<
" logicalChannelConfig: " << std::endl;
3077 os <<
" priority: " << (
int)it->logicalChannelConfig.priority << std::endl;
3078 os <<
" prioritizedBitRateKbps: "
3079 << (
int)it->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
3080 os <<
" bucketSizeDurationMs: "
3081 << (
int)it->logicalChannelConfig.bucketSizeDurationMs << std::endl;
3082 os <<
" logicalChannelGroup: " << (
int)it->logicalChannelConfig.logicalChannelGroup
3087 os <<
" drbToAddModList: " << std::endl;
3088 std::list<LteRrcSap::DrbToAddMod>::iterator it2 =
3090 for (; it2 != radioResourceConfigDedicated.
drbToAddModList.end(); it2++)
3092 os <<
" epsBearerIdentity: " << (
int)it2->epsBearerIdentity << std::endl;
3093 os <<
" drbIdentity: " << (
int)it2->drbIdentity << std::endl;
3094 os <<
" rlcConfig: " << it2->rlcConfig.choice << std::endl;
3095 os <<
" logicalChannelIdentity: " << (
int)it2->logicalChannelIdentity << std::endl;
3096 os <<
" logicalChannelConfig: " << std::endl;
3097 os <<
" priority: " << (
int)it2->logicalChannelConfig.priority << std::endl;
3098 os <<
" prioritizedBitRateKbps: "
3099 << (
int)it2->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
3100 os <<
" bucketSizeDurationMs: "
3101 << (
int)it2->logicalChannelConfig.bucketSizeDurationMs << std::endl;
3102 os <<
" logicalChannelGroup: " << (
int)it2->logicalChannelConfig.logicalChannelGroup
3107 os <<
" drbToReleaseList: ";
3108 std::list<uint8_t>::iterator it3 = radioResourceConfigDedicated.
drbToReleaseList.begin();
3111 os << (
int)*it3 <<
", ";
3115 os <<
" havePhysicalConfigDedicated: "
3120 os <<
" physicalConfigDedicated: " << std::endl;
3122 os <<
" haveSoundingRsUlConfigDedicated: "
3127 os <<
" soundingRsUlConfigDedicated: " << std::endl;
3132 os <<
" srsBandwidth: "
3136 os <<
" srsConfigIndex: "
3142 os <<
" haveAntennaInfoDedicated: "
3147 os <<
" antennaInfo Tx mode: "
3160 std::bitset<0> bitset0;
3163 std::bitset<3> sysInfoBlkT1Opts;
3167 std::bitset<1> cellAccessRelatedInfoOpts;
3171 int numPlmnIdentityInfoElements;
3173 for (
int i = 0; i < numPlmnIdentityInfoElements; i++)
3184 std::bitset<16> trackingAreaCode;
3188 std::bitset<28> cellIdentity;
3203 if (cellAccessRelatedInfoOpts[0])
3206 std::bitset<27> csgIdentity;
3212 std::bitset<1> qRxLevMinOffsetPresent;
3215 if (qRxLevMinOffsetPresent[0])
3221 if (sysInfoBlkT1Opts[2])
3231 int numSchedulingInfo;
3233 for (
int i = 0; i < numSchedulingInfo; i++)
3240 for (
int j = 0; j < numSibType; j++)
3246 if (sysInfoBlkT1Opts[1])
3258 if (sysInfoBlkT1Opts[0])
3271 std::bitset<0> bitset0;
3274 std::bitset<2> sysInfoBlkT2Opts;
3276 if (sysInfoBlkT2Opts[1])
3297 std::bitset<2> freqInfoOpts;
3299 if (freqInfoOpts[1])
3305 if (freqInfoOpts[0])
3315 if (sysInfoBlkT2Opts[0])
3332 std::bitset<0> bitset0;
3335 std::bitset<9> rrCfgCommOptions;
3339 if (rrCfgCommOptions[8])
3346 std::bitset<1> prachConfigInfoPresent;
3353 if (prachConfigInfoPresent[0])
3359 if (rrCfgCommOptions[7])
3400 if (rrCfgCommOptions[6])
3406 if (rrCfgCommOptions[5])
3412 if (rrCfgCommOptions[4])
3418 if (rrCfgCommOptions[3])
3424 if (rrCfgCommOptions[2])
3430 if (rrCfgCommOptions[1])
3436 if (rrCfgCommOptions[0])
3451 std::bitset<0> bitset0;
3457 std::bitset<1> preamblesGroupAConfigPresent;
3516 if (preamblesGroupAConfigPresent[0])
3631 std::bitset<0> bitset0;
3650 std::bitset<1> prachConfigInfoPresent;
3655 if (prachConfigInfoPresent[0])
3744 std::bitset<4> measResultOptionalPresent;
3767 int measResultNeighCellsChoice;
3770 bIterator =
DeserializeChoice(4,
false, &measResultNeighCellsChoice, bIterator);
3772 if (measResultNeighCellsChoice == 0)
3778 for (
int i = 0; i < numElems; i++)
3782 std::bitset<1> isCgiInfoPresent;
3789 measResultEutra.
haveCgiInfo = isCgiInfoPresent[0];
3790 if (isCgiInfoPresent[0])
3792 std::bitset<1> havePlmnIdentityList;
3803 std::bitset<28> cellId;
3808 std::bitset<16> trArCo;
3813 if (havePlmnIdentityList[0])
3818 for (
int j = 0; j < numPlmnElems; j++)
3828 std::bitset<2> measResultOpts;
3832 if (measResultOpts[1])
3840 if (measResultOpts[0])
3851 if (measResultNeighCellsChoice == 1)
3857 if (measResultNeighCellsChoice == 2)
3862 if (measResultNeighCellsChoice == 3)
3872 for (
int i = 0; i < numElems; i++)
3877 std::bitset<2> measResultScellPresent;
3922 std::bitset<1> isMccPresent;
3925 if (isMccPresent[0])
3936 for (
int j = mncDigits - 1; j >= 0; j--)
3939 mnc += n * pow(10, j);
3952 std::bitset<0> bitset0;
3953 std::bitset<2> bitset2;
3954 std::bitset<11> bitset11;
3963 int measObjectToRemoveListElems;
3967 for (
int i = 0; i < measObjectToRemoveListElems; i++)
3977 int measObjectToAddModListElems;
3981 for (
int i = 0; i < measObjectToAddModListElems; i++)
3990 int measObjectChoice;
3993 switch (measObjectChoice)
4013 std::bitset<5> measObjectEutraOpts;
4035 if (measObjectEutraOpts[4])
4041 for (
int i = 0; i < numElems; i++)
4048 if (measObjectEutraOpts[3])
4054 for (
int i = 0; i < numElems; i++)
4076 if (measObjectEutraOpts[2])
4082 for (
int i = 0; i < numElems; i++)
4089 if (measObjectEutraOpts[1])
4095 for (
int i = 0; i < numElems; i++)
4104 std::bitset<1> isRangePresent;
4172 if (measObjectEutraOpts[0])
4186 int reportConfigToRemoveListElems;
4192 for (
int i = 0; i < reportConfigToRemoveListElems; i++)
4202 int reportConfigToAddModListElems;
4208 for (
int i = 0; i < reportConfigToAddModListElems; i++)
4217 int reportConfigChoice;
4220 if (reportConfigChoice == 0)
4226 int triggerTypeChoice;
4229 if (triggerTypeChoice == 0)
4239 switch (eventIdChoice)
4339 if (triggerTypeChoice == 1)
4468 if (reportConfigChoice == 1)
4481 int measIdToRemoveListElems;
4484 for (
int i = 0; i < measIdToRemoveListElems; i++)
4494 int measIdToAddModListElems;
4497 for (
int i = 0; i < measIdToAddModListElems; i++)
4520 std::bitset<4> quantityConfigOpts;
4523 if (quantityConfigOpts[3])
4636 if (quantityConfigOpts[2])
4641 if (quantityConfigOpts[1])
4646 if (quantityConfigOpts[0])
4657 int measGapConfigChoice;
4659 switch (measGapConfigChoice)
4670 int gapOffsetChoice;
4672 switch (gapOffsetChoice)
4706 int speedStateParsChoice;
4708 switch (speedStateParsChoice)
4787 m_mmec = std::bitset<8>(0UL);
4788 m_mTmsi = std::bitset<32>(0UL);
4790 m_spare = std::bitset<1>(0UL);
4809 os <<
"MMEC:" <<
m_mmec << std::endl;
4810 os <<
"MTMSI:" <<
m_mTmsi << std::endl;
4812 os <<
"Spare: " <<
m_spare << std::endl;
4861 std::bitset<1> dummy;
4862 std::bitset<0> optionalOrDefaultMask;
4939 os <<
"radioResourceConfigDedicated:" << std::endl;
4987 std::bitset<0> bitset0;
4988 std::bitset<1> bitset1;
4989 std::bitset<2> bitset2;
5003 int criticalExtensionChoice;
5005 if (criticalExtensionChoice == 1)
5010 else if (criticalExtensionChoice == 0)
5074 std::list<LteRrcSap::SrbToAddMod>
5080 std::list<LteRrcSap::DrbToAddMod>
5146 std::bitset<0> bitset0;
5249 std::bitset<0> bitset0;
5336 std::bitset<6> options;
5356 std::bitset<4> mobCtrlIntoOptional;
5359 mobCtrlIntoOptional.set(1, 0);
5411 std::bitset<2> noncriticalExtension_v890;
5412 noncriticalExtension_v890.set(1, 0);
5413 noncriticalExtension_v890.set(
5422 std::bitset<3> noncriticalExtension_v920;
5423 noncriticalExtension_v920.set(1, 0);
5424 noncriticalExtension_v920.set(1, 0);
5426 noncriticalExtension_v920.set(
5443 std::bitset<0> bitset0;
5472 else if (c1Chosen == 0)
5475 std::bitset<6> rrcConnRecOpts;
5488 std::bitset<4> mobCtrlOpts;
5499 std::bitset<1> ulCarrierFreqPresent;
5505 if (ulCarrierFreqPresent[0])
5516 std::bitset<1> ulBandwidthPresent;
5522 if (ulBandwidthPresent[0])
5539 std::bitset<16> cRnti;
5560 if (rrcConnRecOpts[3])
5574 if (rrcConnRecOpts[1])
5602 os <<
" measObjectToRemoveList: ";
5604 std::list<uint8_t>::iterator it = auxList.begin();
5605 for (; it != auxList.end(); it++)
5607 os << (
int)*it <<
", ";
5613 os <<
" reportConfigToRemoveList: ";
5615 std::list<uint8_t>::iterator it = auxList.begin();
5616 for (; it != auxList.end(); it++)
5618 os << (
int)*it <<
", ";
5624 os <<
" measIdToRemoveList: ";
5626 std::list<uint8_t>::iterator it = auxList.begin();
5627 for (; it != auxList.end(); it++)
5629 os << (
int)*it <<
", ";
5636 os <<
" measObjectToAddMod: " << std::endl;
5638 std::list<LteRrcSap::MeasObjectToAddMod>::iterator it = auxList.begin();
5639 for (; it != auxList.end(); it++)
5641 os <<
" measObjectId: " << (
int)it->measObjectId << std::endl;
5642 os <<
" carrierFreq: " << (
int)it->measObjectEutra.carrierFreq << std::endl;
5643 os <<
" allowedMeasBandwidth: " << (
int)it->measObjectEutra.allowedMeasBandwidth
5645 os <<
" presenceAntennaPort1: " << it->measObjectEutra.presenceAntennaPort1
5647 os <<
" neighCellConfig: " << (
int)it->measObjectEutra.neighCellConfig
5649 os <<
" offsetFreq: " << (
int)it->measObjectEutra.offsetFreq << std::endl;
5651 if (!it->measObjectEutra.cellsToRemoveList.empty())
5653 os <<
" cellsToRemoveList: ";
5654 std::list<uint8_t> auxList = it->measObjectEutra.cellsToRemoveList;
5655 std::list<uint8_t>::iterator it = auxList.begin();
5656 for (; it != auxList.end(); it++)
5658 os << (
int)*it <<
", ";
5663 if (!it->measObjectEutra.blackCellsToRemoveList.empty())
5665 os <<
" blackCellsToRemoveList: ";
5666 std::list<uint8_t> auxList = it->measObjectEutra.blackCellsToRemoveList;
5667 std::list<uint8_t>::iterator it = auxList.begin();
5668 for (; it != auxList.end(); it++)
5670 os << (
int)*it <<
", ";
5675 if (!it->measObjectEutra.cellsToAddModList.empty())
5677 os <<
" cellsToAddModList: " << std::endl;
5678 std::list<LteRrcSap::CellsToAddMod> auxList =
5679 it->measObjectEutra.cellsToAddModList;
5680 std::list<LteRrcSap::CellsToAddMod>::iterator it = auxList.begin();
5681 for (; it != auxList.end(); it++)
5683 os <<
" cellIndex: " << (
int)it->cellIndex << std::endl;
5684 os <<
" physCellId: " << (
int)it->physCellId << std::endl;
5685 os <<
" cellIndividualOffset: " << (
int)it->cellIndividualOffset
5687 os <<
" ------ " << std::endl;
5691 if (!it->measObjectEutra.blackCellsToAddModList.empty())
5693 os <<
" blackCellsToAddModList: " << std::endl;
5694 std::list<LteRrcSap::BlackCellsToAddMod> auxList =
5695 it->measObjectEutra.blackCellsToAddModList;
5696 std::list<LteRrcSap::BlackCellsToAddMod>::iterator it = auxList.begin();
5697 for (; it != auxList.end(); it++)
5699 os <<
" cellIndex: " << (
int)it->cellIndex << std::endl;
5700 os <<
" physCellIdRange.start: " << (
int)it->physCellIdRange.start
5702 os <<
" physCellIdRange.haveRange: " << it->physCellIdRange.haveRange
5704 os <<
" physCellIdRange.range: " << (
int)it->physCellIdRange.range
5706 os <<
" ------ " << std::endl;
5710 os <<
" haveCellForWhichToReportCGI: "
5711 << it->measObjectEutra.haveCellForWhichToReportCGI << std::endl;
5712 os <<
" cellForWhichToReportCGI: "
5713 << (
int)it->measObjectEutra.cellForWhichToReportCGI << std::endl;
5714 os <<
" ------------- " << std::endl;
5720 os <<
" reportConfigToAddModList: " << std::endl;
5721 std::list<LteRrcSap::ReportConfigToAddMod> auxList =
5723 std::list<LteRrcSap::ReportConfigToAddMod>::iterator it = auxList.begin();
5724 for (; it != auxList.end(); it++)
5726 os <<
" reportConfigId: " << (
int)it->reportConfigId << std::endl;
5727 os <<
" reportConfigEutra.triggerType "
5728 << (
int)it->reportConfigEutra.triggerType << std::endl;
5731 os <<
" reportConfigEutra.eventId " << (
int)it->reportConfigEutra.eventId
5735 os <<
" reportConfigEutra.reportOnLeave "
5736 << (
int)it->reportConfigEutra.reportOnLeave << std::endl;
5737 os <<
" reportConfigEutra.a3Offset "
5738 << (
int)it->reportConfigEutra.a3Offset << std::endl;
5742 os <<
" reportConfigEutra.threshold1.choice "
5743 << (
int)it->reportConfigEutra.threshold1.choice << std::endl;
5744 os <<
" reportConfigEutra.threshold1.range "
5745 << (
int)it->reportConfigEutra.threshold1.range << std::endl;
5748 os <<
" reportConfigEutra.threshold2.choice "
5749 << (
int)it->reportConfigEutra.threshold2.choice << std::endl;
5750 os <<
" reportConfigEutra.threshold2.range "
5751 << (
int)it->reportConfigEutra.threshold2.range << std::endl;
5754 os <<
" reportConfigEutra.hysteresis "
5755 << (
int)it->reportConfigEutra.hysteresis << std::endl;
5756 os <<
" reportConfigEutra.timeToTrigger "
5757 << (
int)it->reportConfigEutra.timeToTrigger << std::endl;
5761 os <<
" reportConfigEutra.purpose " << (
int)it->reportConfigEutra.purpose
5764 os <<
" reportConfigEutra.triggerQuantity "
5765 << (
int)it->reportConfigEutra.triggerQuantity << std::endl;
5766 os <<
" reportConfigEutra.reportQuantity "
5767 << (
int)it->reportConfigEutra.reportQuantity << std::endl;
5768 os <<
" reportConfigEutra.maxReportCells "
5769 << (
int)it->reportConfigEutra.maxReportCells << std::endl;
5770 os <<
" reportConfigEutra.reportInterval "
5771 << (
int)it->reportConfigEutra.reportInterval << std::endl;
5772 os <<
" reportConfigEutra.reportAmount "
5773 << (
int)it->reportConfigEutra.reportAmount << std::endl;
5779 os <<
" measIdToAddModList: " << std::endl;
5781 std::list<LteRrcSap::MeasIdToAddMod>::iterator it = auxList.begin();
5782 for (; it != auxList.end(); it++)
5784 os <<
" measId: " << (
int)it->measId << std::endl;
5785 os <<
" measObjectId: " << (
int)it->measObjectId << std::endl;
5786 os <<
" reportConfigId: " << (
int)it->reportConfigId << std::endl;
5787 os <<
" ------ " << std::endl;
5794 os <<
" filterCoefficientRSRP: "
5796 os <<
" filterCoefficientRSRQ:"
5804 os <<
" measGapConfig.gap (gap0/1,value): ("
5819 os <<
" speedStatePars.mobilityStateParameters.tEvaluation: "
5821 os <<
" speedStatePars.mobilityStateParameters.tHystNormal: "
5823 os <<
" speedStatePars.mobilityStateParameters.nCellChangeMedium: "
5826 os <<
" speedStatePars.mobilityStateParameters.nCellChangeHigh: "
5829 os <<
" speedStatePars.timeToTriggerSf.sfMedium: "
5831 os <<
" speedStatePars.timeToTriggerSf.sfHigh: "
5843 os <<
" carrierFreq.dlCarrierFreq: "
5845 os <<
" carrierFreq.dlCarrierFreq: "
5851 os <<
" carrierBandwidth.dlBandwidth: "
5853 os <<
" carrierBandwidth.ulBandwidth: "
5861 os <<
"raPreambleIndex: "
5863 os <<
"raPrachMaskIndex: "
5968 std::list<LteRrcSap::SrbToAddMod>
5974 std::list<LteRrcSap::DrbToAddMod>
6017 std::bitset<4> handoverPrepInfoOpts;
6018 handoverPrepInfoOpts.set(3, 1);
6019 handoverPrepInfoOpts.set(2, 0);
6020 handoverPrepInfoOpts.set(1, 0);
6021 handoverPrepInfoOpts.set(0, 0);
6078 std::bitset<0> bitset0;
6086 int criticalExtensionsChosen;
6089 if (criticalExtensionsChosen == 1)
6094 else if (criticalExtensionsChosen == 0)
6103 else if (c1Chosen == 0)
6106 std::bitset<4> handoverPrepInfoOpts;
6111 for (
int i = 0; i < n; i++)
6117 if (handoverPrepInfoOpts[3])
6136 std::bitset<16> cRnti;
6151 std::bitset<8> systemFrameNumber;
6154 systemFrameNumber.to_ulong();
6156 std::bitset<10> spare;
6177 if (handoverPrepInfoOpts[2])
6182 if (handoverPrepInfoOpts[1])
6187 if (handoverPrepInfoOpts[0])
6206 os <<
"plmnIdentityInfo.plmnIdentity: "
6210 os <<
"cellAccessRelatedInfo.cellIdentity "
6213 os <<
"cellAccessRelatedInfo.csgIndication: "
6216 os <<
"cellAccessRelatedInfo.csgIdentity: "
6308 std::bitset<0> bitset0;
6333 std::bitset<16> cRnti;
6343 std::bitset<16> shortMacI;
6365 std::bitset<2> spare;
6458 std::bitset<0> bitset0;
6472 int criticalExtensionsChoice;
6474 if (criticalExtensionsChoice == 1)
6479 else if (criticalExtensionsChoice == 0)
6492 std::bitset<1> nonCriticalExtensionPresent;
6511 os <<
"RadioResourceConfigDedicated: " << std::endl;
6579 std::bitset<0> bitset0;
6593 int criticalExtensionsChoice;
6595 if (criticalExtensionsChoice == 1)
6600 else if (criticalExtensionsChoice == 0)
6603 std::bitset<1> opts;
6679 std::bitset<0> bitset0;
6688 int criticalExtensionsChoice;
6690 if (criticalExtensionsChoice == 1)
6695 else if (criticalExtensionsChoice == 0)
6698 std::bitset<1> opts;
6774 std::bitset<0> bitset0;
6788 int criticalExtensionsChoice;
6790 if (criticalExtensionsChoice == 1)
6795 else if (criticalExtensionsChoice == 0)
6804 std::bitset<3> opts;
6896 std::bitset<0> bitset0;
6906 int criticalExtensionsChoice;
6908 if (criticalExtensionsChoice == 1)
6913 else if (criticalExtensionsChoice == 0)
6923 else if (c1Choice == 0)
6926 std::bitset<1> opts;
7006 std::bitset<0> bitset0;
7012 int criticalExtensionsChoice;
7015 if (criticalExtensionsChoice == 1)
7020 else if (criticalExtensionsChoice == 0)
7033 std::bitset<1> isNonCriticalExtensionPresent;
7039 if (isNonCriticalExtensionPresent[0])
7058 os <<
"haveMeasResultNeighCells = "
7063 std::list<LteRrcSap::MeasResultEutra> measResultListEutra =
7065 std::list<LteRrcSap::MeasResultEutra>::iterator it = measResultListEutra.begin();
7066 for (; it != measResultListEutra.end(); it++)
7068 os <<
" physCellId =" << (
int)it->physCellId << std::endl;
7069 os <<
" haveCgiInfo =" << it->haveCgiInfo << std::endl;
7070 if (it->haveCgiInfo)
7072 os <<
" plmnIdentity = " << (
int)it->cgiInfo.plmnIdentity << std::endl;
7073 os <<
" cellIdentity = " << (
int)it->cgiInfo.cellIdentity << std::endl;
7074 os <<
" trackingAreaCode = " << (
int)it->cgiInfo.trackingAreaCode << std::endl;
7075 os <<
" havePlmnIdentityList = " << !it->cgiInfo.plmnIdentityList.empty()
7077 if (!it->cgiInfo.plmnIdentityList.empty())
7079 for (std::list<uint32_t>::iterator it2 = it->cgiInfo.plmnIdentityList.begin();
7080 it2 != it->cgiInfo.plmnIdentityList.end();
7083 os <<
" plmnId : " << *it2 << std::endl;
7088 os <<
" haveRsrpResult =" << it->haveRsrpResult << std::endl;
7089 if (it->haveRsrpResult)
7091 os <<
" rsrpResult =" << (
int)it->rsrpResult << std::endl;
7094 os <<
" haveRsrqResult =" << it->haveRsrqResult << std::endl;
7095 if (it->haveRsrqResult)
7097 os <<
" rsrqResult =" << (
int)it->rsrqResult << std::endl;
7138 std::cout <<
"UL DCCH MSG TYPE: " <<
m_messageType << std::endl;
7150 std::bitset<0> bitset0;
7200 std::cout <<
"DL DCCH MSG TYPE: " <<
m_messageType << std::endl;
7212 std::bitset<0> bitset0;
7262 std::cout <<
"UL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7274 std::bitset<0> bitset0;
7324 std::cout <<
"DL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7336 std::bitset<0> bitset0;
iterator in a Buffer instance
automatically resized byte buffer
void PreSerialize() const override
This function serializes class attributes to m_serializationResult local Buffer.
void Print(std::ostream &os) const override
This function prints the object, for debugging purposes.
void SetMessage(LteRrcSap::HandoverPreparationInfo msg)
Receives a HandoverPreparationInfo IE and stores the contents into the class attributes.
LteRrcSap::HandoverPreparationInfo GetMessage() const
Returns a HandoverPreparationInfo IE from the values in the class attributes.
HandoverPreparationInfoHeader()
LteRrcSap::AsConfig m_asConfig
AS config.
LteRrcSap::AsConfig GetAsConfig() const
Getter for m_asConfig.
ReestablishmentCause
ReestablishmentCause enumeration.
@ RECONFIGURATION_FAILURE
Buffer::Iterator DeserializeDlCcchMessage(Buffer::Iterator bIterator)
Deserialize DL CCCH message function.
void Print(std::ostream &os) const override
This function prints the object, for debugging purposes.
void PreSerialize() const override
This function serializes class attributes to m_serializationResult local Buffer.
~RrcDlCcchMessage() override
void SerializeDlCcchMessage(int msgType) const
Serialize DL CCCH message function.
void SerializeDlDcchMessage(int msgType) const
Serialize DL DCCH message function.
void PreSerialize() const override
This function serializes class attributes to m_serializationResult local Buffer.
void Print(std::ostream &os) const override
This function prints the object, for debugging purposes.
~RrcDlDcchMessage() override
Buffer::Iterator DeserializeDlDcchMessage(Buffer::Iterator bIterator)
Deserialize DL DCCH message function.
This class only serves to discriminate which message type has been received in uplink (ue to eNb) for...
void SerializeUlCcchMessage(int msgType) const
Serialize UL CCCH message function.
Buffer::Iterator DeserializeUlCcchMessage(Buffer::Iterator bIterator)
Deserialize DL CCCH message function.
~RrcUlCcchMessage() override
void Print(std::ostream &os) const override
This function prints the object, for debugging purposes.
void PreSerialize() const override
This function serializes class attributes to m_serializationResult local Buffer.
Buffer::Iterator DeserializeUlDcchMessage(Buffer::Iterator bIterator)
Deserialize UL DCCH message function.
void Print(std::ostream &os) const override
This function prints the object, for debugging purposes.
void PreSerialize() const override
This function serializes class attributes to m_serializationResult local Buffer.
~RrcUlDcchMessage() override
void SerializeUlDcchMessage(int msgType) const
Serialize UL DCCH message function.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint16_t antennaPortsCount
antenna ports count
uint8_t transmissionMode
transmission mode
RadioResourceConfigDedicated sourceRadioResourceConfig
source radio resource config
MasterInformationBlock sourceMasterInformationBlock
source master information block
uint16_t sourceUeIdentity
source UE identity
MeasConfig sourceMeasConfig
source measure config
uint32_t sourceDlCarrierFreq
source DL carrier frequency
SystemInformationBlockType1 sourceSystemInformationBlockType1
source system information block type 1
SystemInformationBlockType2 sourceSystemInformationBlockType2
source system information block type 2
BlackCellsToAddMod structure.
uint8_t cellIndex
cell index
PhysCellIdRange physCellIdRange
Phy cell ID range.
uint16_t dlBandwidth
DL bandwidth.
uint16_t ulBandwidth
UL bandwidth.
uint32_t dlCarrierFreq
DL carrier frequency.
uint32_t ulCarrierFreq
UL carrier frequency.
CellIdentification structure.
uint32_t dlCarrierFreq
ARFCN - valueEUTRA.
uint32_t physCellId
physical cell ID
int8_t cellIndividualOffset
cell individual offset
uint8_t cellIndex
cell index
uint16_t physCellId
Phy cell ID.
uint32_t cellIdentity
cell identity
uint32_t plmnIdentity
PLMN identity.
std::list< uint32_t > plmnIdentityList
PLMN identity list.
uint16_t trackingAreaCode
tracking area code
uint8_t epsBearerIdentity
EPS bearer identity.
RlcConfig rlcConfig
RLC config.
uint8_t logicalChannelIdentity
logical channel identify
uint8_t drbIdentity
DRB identity.
LogicalChannelConfig logicalChannelConfig
logical channel config
uint32_t ulCarrierFreq
UL carrier frequency.
uint16_t ulBandwidth
UL bandwidth.
HandoverPreparationInfo structure.
AsConfig asConfig
AS config.
LogicalChannelConfig structure.
uint16_t bucketSizeDurationMs
bucket size duration ms
uint16_t prioritizedBitRateKbps
prioritized bit rate Kbps
uint8_t logicalChannelGroup
logical channel group
std::list< uint8_t > measIdToRemoveList
measure ID to remove list
uint8_t sMeasure
S measure.
std::list< MeasObjectToAddMod > measObjectToAddModList
measure object to add mod list
std::list< uint8_t > reportConfigToRemoveList
report config to remove list
std::list< uint8_t > measObjectToRemoveList
measure object to remove list
SpeedStatePars speedStatePars
speed state parameters
bool haveMeasGapConfig
have measure gap config?
QuantityConfig quantityConfig
quantity config
bool haveSmeasure
have S measure?
bool haveSpeedStatePars
have speed state parameters?
std::list< ReportConfigToAddMod > reportConfigToAddModList
report config to add mod list
MeasGapConfig measGapConfig
measure gap config
std::list< MeasIdToAddMod > measIdToAddModList
measure ID to add mod list
bool haveQuantityConfig
have quantity config?
Gap gapOffsetChoice
gap offset
uint8_t gapOffsetValue
gap offset value
MeasIdToAddMod structure.
uint8_t measObjectId
measure object ID
uint8_t reportConfigId
report config ID
std::list< uint8_t > cellsToRemoveList
cells to remove list
bool haveCellForWhichToReportCGI
have cell for which to report CGI?
std::list< CellsToAddMod > cellsToAddModList
cells to add mod list
uint16_t allowedMeasBandwidth
allowed measure bandwidth
int8_t offsetFreq
offset frequency
uint8_t neighCellConfig
neighbor cell config
uint16_t cellForWhichToReportCGI
cell for which to report CGI
bool presenceAntennaPort1
antenna port 1 present?
std::list< uint8_t > blackCellsToRemoveList
black cells to remove list
std::list< BlackCellsToAddMod > blackCellsToAddModList
black cells to add mod list
uint32_t carrierFreq
carrier frequency
MeasObjectToAddMod structure.
uint8_t measObjectId
measure object ID
MeasObjectEutra measObjectEutra
measure object eutra
uint8_t rsrpResult
the RSRP result
uint8_t rsrqResult
the RSRQ result
uint16_t physCellId
physical cell ID
MeasResultEutra structure.
uint8_t rsrqResult
RSRQ result.
uint8_t rsrpResult
RSRP result.
bool haveRsrpResult
have RSRP result
bool haveRsrqResult
have RSRQ result?
uint16_t physCellId
Phy cell ID.
bool haveCgiInfo
have CGI info?
uint8_t rsrqResult
the RSRQ result
uint8_t rsrpResult
the RSRP result
uint8_t rsrpResult
the RSRP result
uint8_t rsrqResult
the RSRQ result
MeasResultServFreq structure.
bool haveMeasResultSCell
have measResultSCell?
MeasResultBestNeighCell measResultBestNeighCell
best neighbor cell measurement results
bool haveMeasResultBestNeighCell
have measResultBestNeighCell?
uint16_t servFreqId
serving cell index
MeasResultSCell measResultSCell
SCell measurement results.
bool haveMeasResultNeighCells
have measure result neighbor cells
std::list< MeasResultEutra > measResultListEutra
measure result list eutra
bool haveMeasResultServFreqList
has measResultServFreqList-r10
std::list< MeasResultServFreq > measResultServFreqList
MeasResultServFreqList-r10.
MeasResultPCell measResultPCell
measurement result primary cell
MeasurementReport structure.
MeasResults measResults
measure results
MobilityControlInfo structure.
RadioResourceConfigCommon radioResourceConfigCommon
radio resource config common
RachConfigDedicated rachConfigDedicated
RACH config dedicated.
bool haveRachConfigDedicated
Have RACH config dedicated?
uint16_t newUeIdentity
new UE identity
bool haveCarrierBandwidth
have carrier bandwidth?
bool haveCarrierFreq
have carrier frequency?
CarrierBandwidthEutra carrierBandwidth
carrier bandwidth
CarrierFreqEutra carrierFreq
carrier frequency
uint16_t targetPhysCellId
target Phy cell ID
uint8_t nCellChangeHigh
cell change high
uint8_t tEvaluation
evaluation
uint8_t nCellChangeMedium
cell change medium
uint8_t tHystNormal
hyst normal
NonCriticalExtensionConfiguration structure.
std::list< uint8_t > sCellToReleaseList
SCell to release list.
std::list< SCellToAddMod > sCellToAddModList
SCell to add mod list.
AntennaInfoCommon antennaInfoCommon
2: Physical configuration, general antennaInfoCommon-r10
PdschConfigCommon pdschConfigCommon
4: Physical configuration, physical channels pdsch-ConfigCommon-r10
uint16_t dlBandwidth
1: Cell characteristics
int8_t referenceSignalPower
INTEGER (-60..50),.
int8_t pb
INTEGER (0..3),.
bool haveRange
has a range?
uint16_t start
starting cell ID
PhysicalConfigDedicated structure.
PdschConfigDedicated pdschConfigDedicated
PDSCH config dedicated.
bool haveAntennaInfoDedicated
have antenna info dedicated?
SoundingRsUlConfigDedicated soundingRsUlConfigDedicated
sounding RS UL config dedicated
bool haveSoundingRsUlConfigDedicated
have sounding RS UL config dedicated?
bool havePdschConfigDedicated
have PDSCH config dedicated?
AntennaInfoDedicated antennaInfo
antenna info
PhysicalConfigDedicatedSCell structure.
AntennaInfoDedicated antennaInfoUl
antenna info UL
SoundingRsUlConfigDedicated soundingRsUlConfigDedicated
sounding RS UL config dedicated
PdschConfigDedicated pdschConfigDedicated
PDSCH config dedicated.
bool haveSoundingRsUlConfigDedicated
have sounding RS UL config dedicated?
bool haveUlConfiguration
have UL configuration?
bool haveAntennaInfoUlDedicated
have antenna info UL dedicated?
bool havePdschConfigDedicated
have PDSCH config dedicated?
bool haveNonUlConfiguration
have non UL configuration?
AntennaInfoDedicated antennaInfo
antenna info dedicated
bool haveAntennaInfoDedicated
have antenna info dedicated?
uint32_t plmnIdentity
PLMN identity.
uint8_t numberOfRaPreambles
number of RA preambles
uint8_t filterCoefficientRSRQ
filter coefficient RSRQ
uint8_t filterCoefficientRSRP
filter coefficient RSRP
uint8_t raResponseWindowSize
RA response window size.
uint8_t preambleTransMax
preamble transmit maximum
RachConfigCommon structure.
TxFailParam txFailParam
txFailParams
PreambleInfo preambleInfo
preamble info
RaSupervisionInfo raSupervisionInfo
RA supervision info.
uint8_t raPreambleIndex
RA preamble index.
uint8_t raPrachMaskIndex
RA PRACH mask index.
RadioResourceConfigCommon structure.
RachConfigCommon rachConfigCommon
RACH config common.
RadioResourceConfigCommonSCell.
NonUlConfiguration nonUlConfiguration
non UL configuration
bool haveUlConfiguration
have UL configuration
bool haveNonUlConfiguration
have non UL configuration?
UlConfiguration ulConfiguration
UL configuration.
RadioResourceConfigCommonSib structure.
RachConfigCommon rachConfigCommon
RACH config common.
RadioResourceConfigDedicated structure.
PhysicalConfigDedicated physicalConfigDedicated
physical config dedicated
std::list< uint8_t > drbToReleaseList
DRB to release list.
bool havePhysicalConfigDedicated
have physical config dedicated?
std::list< DrbToAddMod > drbToAddModList
DRB to add mod list.
std::list< SrbToAddMod > srbToAddModList
SRB to add mod list.
RadioResourceConfigDedicatedSCell structure.
PhysicalConfigDedicatedSCell physicalConfigDedicatedSCell
physical config dedicated SCell
ReestabUeIdentity structure.
uint16_t physCellId
Phy cell ID.
bool reportOnLeave
Indicates whether or not the UE shall initiate the measurement reporting procedure when the leaving c...
uint8_t maxReportCells
Maximum number of cells, excluding the serving cell, to be included in the measurement report.
@ RSRP
Reference Signal Received Power.
@ RSRQ
Reference Signal Received Quality.
uint8_t hysteresis
Parameter used within the entry and leave condition of an event triggered reporting condition.
enum ns3::LteRrcSap::ReportConfigEutra::@68 reportInterval
Report interval enumeration.
uint8_t reportAmount
Number of measurement reports applicable, always assumed to be infinite.
@ BOTH
Both the RSRP and RSRQ quantities are to be included in the measurement report.
@ SAME_AS_TRIGGER_QUANTITY
ThresholdEutra threshold2
Threshold for event A5.
enum ns3::LteRrcSap::ReportConfigEutra::@64 triggerType
Trigger enumeration.
enum ns3::LteRrcSap::ReportConfigEutra::@65 eventId
Event enumeration.
enum ns3::LteRrcSap::ReportConfigEutra::@67 reportQuantity
Report type enumeration.
enum ns3::LteRrcSap::ReportConfigEutra::@66 triggerQuantity
Trigger type enumeration.
@ PERIODICAL
periodical report
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5.
@ 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...
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.
uint8_t range
Value range used in RSRP/RSRQ threshold.
enum ns3::LteRrcSap::ThresholdEutra::@63 choice
Threshold enumeration.
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