25 #include "ns3/lte-rrc-header.h" 30 #define MAX_DRB 11 // According to section 6.4 3GPP TS 36.331 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 83 case 15:
n = 1;
break;
84 case 25:
n = 2;
break;
85 case 50:
n = 3;
break;
86 case 75:
n = 4;
break;
87 case 100:
n = 5;
break;
100 case 0: bw = 6;
break;
101 case 1: bw = 15;
break;
102 case 2: bw = 25;
break;
103 case 3: bw = 50;
break;
104 case 4: bw = 75;
break;
105 case 5: bw = 100;
break;
119 std::list<LteRrcSap::DrbToAddMod>::iterator it = drbToAddModList.begin ();
120 for (; it != drbToAddModList.end (); it++)
124 std::bitset<5> drbToAddModListOptionalFieldsPresent = std::bitset<5> ();
125 drbToAddModListOptionalFieldsPresent.set (4,1);
126 drbToAddModListOptionalFieldsPresent.set (3,0);
127 drbToAddModListOptionalFieldsPresent.set (2,1);
128 drbToAddModListOptionalFieldsPresent.set (1,1);
129 drbToAddModListOptionalFieldsPresent.set (0,1);
138 switch (it->rlcConfig.choice)
207 std::list<LteRrcSap::SrbToAddMod>::iterator it = srbToAddModList.begin ();
208 for (; it != srbToAddModList.end (); it++)
212 std::bitset<2> srbToAddModListOptionalFieldsPresent = std::bitset<2> ();
213 srbToAddModListOptionalFieldsPresent.set (1,0);
214 srbToAddModListOptionalFieldsPresent.set (0,1);
244 int prioritizedBitRate;
248 prioritizedBitRate = 0;
251 prioritizedBitRate = 1;
254 prioritizedBitRate = 2;
257 prioritizedBitRate = 3;
260 prioritizedBitRate = 4;
263 prioritizedBitRate = 5;
266 prioritizedBitRate = 6;
269 prioritizedBitRate = 7;
274 int bucketSizeDuration;
278 bucketSizeDuration = 0;
281 bucketSizeDuration = 1;
284 bucketSizeDuration = 2;
287 bucketSizeDuration = 3;
290 bucketSizeDuration = 4;
293 bucketSizeDuration = 5;
296 bucketSizeDuration = 5;
308 std::bitset<10> optionalFieldsPhysicalConfigDedicated;
310 optionalFieldsPhysicalConfigDedicated.set (8,0);
311 optionalFieldsPhysicalConfigDedicated.set (7,0);
312 optionalFieldsPhysicalConfigDedicated.set (6,0);
313 optionalFieldsPhysicalConfigDedicated.set (5,0);
314 optionalFieldsPhysicalConfigDedicated.set (4,0);
315 optionalFieldsPhysicalConfigDedicated.set (3,0);
318 optionalFieldsPhysicalConfigDedicated.set (0,0);
404 bool isSrbToAddModListPresent = !radioResourceConfigDedicated.
srbToAddModList.empty ();
405 bool isDrbToAddModListPresent = !radioResourceConfigDedicated.
drbToAddModList.empty ();
406 bool isDrbToReleaseListPresent = !radioResourceConfigDedicated.
drbToReleaseList.empty ();
409 std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
410 optionalFieldsPresent.set (5,isSrbToAddModListPresent);
411 optionalFieldsPresent.set (4,isDrbToAddModListPresent);
412 optionalFieldsPresent.set (3,isDrbToReleaseListPresent);
413 optionalFieldsPresent.set (2,0);
414 optionalFieldsPresent.set (1,0);
419 if (isSrbToAddModListPresent)
425 if (isDrbToAddModListPresent)
431 if (isDrbToReleaseListPresent)
434 std::list<uint8_t>::iterator it = radioResourceConfigDedicated.
drbToReleaseList.begin ();
452 std::bitset<3> sysInfoBlk1Opts;
453 sysInfoBlk1Opts.set (2,0);
454 sysInfoBlk1Opts.set (1,0);
455 sysInfoBlk1Opts.set (0,0);
511 std::bitset<9> rrCfgCmmOpts;
512 rrCfgCmmOpts.set (8,1);
513 rrCfgCmmOpts.set (7,0);
514 rrCfgCmmOpts.set (6,0);
515 rrCfgCmmOpts.set (5,0);
516 rrCfgCmmOpts.set (4,0);
517 rrCfgCmmOpts.set (3,0);
518 rrCfgCmmOpts.set (2,0);
519 rrCfgCmmOpts.set (1,0);
520 rrCfgCmmOpts.set (0,0);
653 std::bitset<4> measResultOptional;
655 measResultOptional.set (2,
false);
656 measResultOptional.set (1,
false);
681 std::list<LteRrcSap::MeasResultEutra>::iterator it;
703 if (!it->cgiInfo.plmnIdentityList.empty ())
706 std::list<uint32_t>::iterator it2;
707 for (it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.end (); it2++)
715 std::bitset<2> measResultFieldsPresent;
716 measResultFieldsPresent[1] = it->haveRsrpResult;
717 measResultFieldsPresent[0] = it->haveRsrqResult;
720 if (it->haveRsrpResult)
725 if (it->haveRsrqResult)
736 std::list<LteRrcSap::MeasResultScell>::iterator it;
742 std::bitset<2> measResultScellPresent;
748 std::bitset<2> measResultScellFieldsPresent;
749 measResultScellFieldsPresent[1] = it->haveRsrpResult;
750 measResultScellFieldsPresent[0] = it->haveRsrqResult;
753 if (it->haveRsrpResult)
758 if (it->haveRsrqResult)
774 int nDig = (plmnId > 99) ? 3 : 2;
777 for (
int i = nDig - 1; i >= 0; i--)
779 int n = floor (plmnId / pow (10,i));
781 plmnId -=
n * pow (10,i);
935 switch (qOffsetRange)
1038 switch (thresholdEutra.
choice)
1056 std::bitset<11> measConfigOptional;
1066 measConfigOptional.set (1,
false );
1089 std::bitset<5> measObjOpts;
1090 measObjOpts.set (4,!it->measObjectEutra.cellsToRemoveList.empty () );
1091 measObjOpts.set (3,!it->measObjectEutra.cellsToAddModList.empty () );
1092 measObjOpts.set (2,!it->measObjectEutra.blackCellsToRemoveList.empty () );
1093 measObjOpts.set (1,!it->measObjectEutra.blackCellsToAddModList.empty () );
1094 measObjOpts.set (0,it->measObjectEutra.haveCellForWhichToReportCGI);
1107 if (!it->measObjectEutra.cellsToRemoveList.empty ())
1110 for (std::list<uint8_t>::iterator it2 = it->measObjectEutra.cellsToRemoveList.begin (); it2 != it->measObjectEutra.cellsToRemoveList.end (); it2++)
1116 if (!it->measObjectEutra.cellsToAddModList.empty ())
1119 for (std::list<LteRrcSap::CellsToAddMod>::iterator it2 = it->measObjectEutra.cellsToAddModList.begin (); it2 != it->measObjectEutra.cellsToAddModList.end (); it2++)
1134 if (!it->measObjectEutra.blackCellsToRemoveList.empty () )
1137 for (std::list<uint8_t>::iterator it2 = it->measObjectEutra.blackCellsToRemoveList.begin (); it2 != it->measObjectEutra.blackCellsToRemoveList.end (); it2++)
1143 if (!it->measObjectEutra.blackCellsToAddModList.empty () )
1146 for (std::list<LteRrcSap::BlackCellsToAddMod>::iterator it2 = it->measObjectEutra.blackCellsToAddModList.begin (); it2 != it->measObjectEutra.blackCellsToAddModList.end (); it2++)
1153 std::bitset<1> rangePresent = std::bitset<1> (it2->physCellIdRange.haveRange);
1156 if (it2->physCellIdRange.haveRange)
1158 switch (it2->physCellIdRange.range)
1210 if (it->measObjectEutra.haveCellForWhichToReportCGI)
1238 switch (it->reportConfigEutra.triggerType)
1243 switch (it->reportConfigEutra.purpose)
1257 switch (it->reportConfigEutra.eventId)
1290 switch (it->reportConfigEutra.timeToTrigger)
1367 switch (it->reportConfigEutra.reportInterval)
1420 switch (it->reportConfigEutra.reportAmount)
1473 std::bitset<4> quantityConfigOpts (0);
1474 quantityConfigOpts.set (3,1);
1712 std::bitset<3> noncriticalExtension_v1020;
1713 noncriticalExtension_v1020.set (2,0);
1714 noncriticalExtension_v1020.set (1,1);
1715 noncriticalExtension_v1020.set (0,0);
1722 std::bitset<4> sCellToAddMod_r10;
1723 sCellToAddMod_r10.set (3,1);
1724 sCellToAddMod_r10.set (2,1);
1725 sCellToAddMod_r10.set (1,1);
1726 sCellToAddMod_r10.set (0,it->haveRadioResourceConfigDedicatedSCell);
1731 std::bitset<2> cellIdentification_r10;
1732 cellIdentification_r10.set(1,1);
1733 cellIdentification_r10.set(0,1);
1742 if (it->haveRadioResourceConfigDedicatedSCell)
1760 std::bitset<2> radioResourceConfigCommonSCell_r10;
1768 std::bitset<5> nonUlConfiguration_r10;
1769 nonUlConfiguration_r10.set (4,1);
1770 nonUlConfiguration_r10.set (3,1);
1771 nonUlConfiguration_r10.set (2,0);
1772 nonUlConfiguration_r10.set (1,1);
1773 nonUlConfiguration_r10.set (0,0);
1778 std::bitset<1> antennaInfoCommon_r10;
1779 antennaInfoCommon_r10.set (0,1);
1783 std::bitset<2> pdschConfigCommon_r10;
1784 pdschConfigCommon_r10.set (1,1);
1785 pdschConfigCommon_r10.set (0,1);
1796 std::bitset<7> UlConfiguration_r10;
1797 UlConfiguration_r10.set (6,1);
1798 UlConfiguration_r10.set (5,0);
1799 UlConfiguration_r10.set (4,1);
1800 UlConfiguration_r10.set (3,0);
1801 UlConfiguration_r10.set (2,0);
1802 UlConfiguration_r10.set (1,1);
1803 UlConfiguration_r10.set (0,0);
1807 std::bitset<3> FreqInfo_r10;
1808 FreqInfo_r10.set (2,1);
1809 FreqInfo_r10.set (1,1);
1810 FreqInfo_r10.set (0,0);
1817 std::bitset<2> UlPowerControlCommonSCell_r10;
1818 UlPowerControlCommonSCell_r10.set (1,0);
1819 UlPowerControlCommonSCell_r10.set (0,1);
1828 std::bitset<1> prachConfigSCell_r10;
1829 prachConfigSCell_r10.set(0,1);
1840 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
1841 RadioResourceConfigDedicatedSCell_r10.set (0,1);
1851 std::bitset<2> pcdscOpt;
1859 std::bitset<4> nulOpt;
1905 std::bitset<7> ulOpt;
1987 int thresholdEutraChoice, range;
1990 switch (thresholdEutraChoice)
1995 thresholdEutra->
range = range;
2001 thresholdEutra->
range = range;
2015 *qOffsetRange = -24;
2018 *qOffsetRange = -22;
2021 *qOffsetRange = -20;
2024 *qOffsetRange = -18;
2027 *qOffsetRange = -16;
2030 *qOffsetRange = -14;
2033 *qOffsetRange = -12;
2036 *qOffsetRange = -10;
2115 std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
2118 if (optionalFieldsPresent[5])
2124 if (optionalFieldsPresent[4])
2130 if (optionalFieldsPresent[3])
2136 for (
int i = 0; i <
n; i++)
2143 if (optionalFieldsPresent[2])
2149 if (optionalFieldsPresent[1])
2156 if (optionalFieldsPresent[0])
2171 srbToAddModList->clear ();
2174 for (
int i = 0; i < numElems; i++)
2179 std::bitset<2> optionalFields;
2187 if (optionalFields[1])
2193 if (optionalFields[0])
2211 srbToAddModList->insert (srbToAddModList->end (),srbToAddMod);
2224 drbToAddModList->clear ();
2226 for (
int i = 0; i <
n; i++)
2230 std::bitset<5> optionalFields;
2233 if (optionalFields[4])
2243 if (optionalFields[3])
2249 if (optionalFields[2])
2256 std::bitset<0> bitset0;
2308 if (optionalFields[1])
2314 if (optionalFields[0])
2319 drbToAddModList->insert (drbToAddModList->end (),drbToAddMod);
2331 std::bitset<1> bitset1;
2345 uint16_t prioritizedBitRateKbps;
2350 prioritizedBitRateKbps = 0;
2353 prioritizedBitRateKbps = 8;
2356 prioritizedBitRateKbps = 16;
2359 prioritizedBitRateKbps = 32;
2362 prioritizedBitRateKbps = 64;
2365 prioritizedBitRateKbps = 128;
2368 prioritizedBitRateKbps = 256;
2371 prioritizedBitRateKbps = 10000;
2374 prioritizedBitRateKbps = 10000;
2380 uint16_t bucketSizeDurationMs;
2384 bucketSizeDurationMs = 50;
2387 bucketSizeDurationMs = 100;
2390 bucketSizeDurationMs = 150;
2393 bucketSizeDurationMs = 300;
2396 bucketSizeDurationMs = 500;
2399 bucketSizeDurationMs = 1000;
2402 bucketSizeDurationMs = 1000;
2419 std::bitset<10> optionalFieldPresent;
2423 if (optionalFieldPresent[9])
2426 std::bitset<0> bitset0;
2438 if (optionalFieldPresent[8])
2443 if (optionalFieldPresent[7])
2448 if (optionalFieldPresent[6])
2453 if (optionalFieldPresent[5])
2458 if (optionalFieldPresent[4])
2463 if (optionalFieldPresent[3])
2469 if (optionalFieldPresent[2])
2486 std::bitset<0> bitset0;
2517 if (optionalFieldPresent[1])
2528 std::bitset<1> codebookSubsetRestrictionPresent;
2535 if (codebookSubsetRestrictionPresent[0])
2541 int txantennaselchosen;
2543 if (txantennaselchosen == 0)
2548 else if (txantennaselchosen == 1)
2555 if (optionalFieldPresent[0])
2567 NS_FATAL_ERROR (
"RrcAsn1Header Print() function must also specify LteRrcSap::RadioResourceConfigDedicated as a second argument");
2574 std::bitset<2> nonCriticalExtension_v890;
2577 if (nonCriticalExtension_v890[0])
2580 std::bitset<3> nonCriticalExtension_v920;
2582 if (nonCriticalExtension_v920[0])
2585 std::bitset<3> nonCriticalExtension_v1020;
2587 NS_ASSERT (!nonCriticalExtension_v1020[2]);
2588 NS_ASSERT (nonCriticalExtension_v1020[1]);
2589 NS_ASSERT (!nonCriticalExtension_v1020[0]);
2595 for (
int i = 0; i < numElems; i++)
2597 std::bitset<4> sCellToAddMod_r10;
2614 if (sCellToAddMod_r10[0])
2632 std::bitset<2> cellIdentification_r10;
2650 std::bitset<2> radioResourceConfigCommonSCell_r10;
2656 std::bitset<5> nonUlConfiguration_r10;
2662 std::bitset<1> antennaInfoCommon_r10;
2667 std::bitset<2> pdschConfigCommon_r10;
2676 std::bitset<7> UlConfiguration_r10;
2679 std::bitset<3> FreqInfo_r10;
2687 std::bitset<2> UlPowerControlCommonSCell_r10;
2692 std::bitset<1> prachConfigSCell_r10;
2705 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
2716 std::bitset<2> pcdscOpt;
2722 std::bitset<4> nulOpt;
2740 std::bitset<1> codebookSubsetRestrictionPresent;
2747 if (codebookSubsetRestrictionPresent[0])
2754 int txantennaselchosen;
2756 if (txantennaselchosen == 0)
2761 else if (txantennaselchosen == 1)
2772 std::bitset<0> bitset0;
2787 std::bitset<7> ulOpt;
2808 std::bitset<1> codebookSubsetRestrictionPresent;
2815 if (codebookSubsetRestrictionPresent[0])
2822 int txantennaselchosen;
2824 if (txantennaselchosen == 0)
2829 else if (txantennaselchosen == 1)
2854 std::bitset<0> bitset0;
2893 os <<
" srbToAddModList: " << std::endl;
2894 std::list<LteRrcSap::SrbToAddMod>::iterator it = radioResourceConfigDedicated.
srbToAddModList.begin ();
2895 for (; it != radioResourceConfigDedicated.
srbToAddModList.end (); it++)
2897 os <<
" srbIdentity: " << (int)it->srbIdentity << std::endl;
2898 os <<
" logicalChannelConfig: " << std::endl;
2899 os <<
" priority: " << (
int)it->logicalChannelConfig.priority << std::endl;
2900 os <<
" prioritizedBitRateKbps: " << (int)it->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
2901 os <<
" bucketSizeDurationMs: " << (
int)it->logicalChannelConfig.bucketSizeDurationMs << std::endl;
2902 os <<
" logicalChannelGroup: " << (int)it->logicalChannelConfig.logicalChannelGroup << std::endl;
2906 os <<
" drbToAddModList: " << std::endl;
2907 std::list<LteRrcSap::DrbToAddMod>::iterator it2 = radioResourceConfigDedicated.
drbToAddModList.begin ();
2908 for (; it2 != radioResourceConfigDedicated.
drbToAddModList.end (); it2++)
2910 os <<
" epsBearerIdentity: " << (int)it2->epsBearerIdentity << std::endl;
2911 os <<
" drbIdentity: " << (
int)it2->drbIdentity << std::endl;
2912 os <<
" rlcConfig: " << it2->rlcConfig.choice << std::endl;
2913 os <<
" logicalChannelIdentity: " << (int)it2->logicalChannelIdentity << std::endl;
2914 os <<
" logicalChannelConfig: " << std::endl;
2915 os <<
" priority: " << (
int)it2->logicalChannelConfig.priority << std::endl;
2916 os <<
" prioritizedBitRateKbps: " << (int)it2->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
2917 os <<
" bucketSizeDurationMs: " << (
int)it2->logicalChannelConfig.bucketSizeDurationMs << std::endl;
2918 os <<
" logicalChannelGroup: " << (int)it2->logicalChannelConfig.logicalChannelGroup << std::endl;
2922 os <<
" drbToReleaseList: ";
2923 std::list<uint8_t>::iterator it3 = radioResourceConfigDedicated.
drbToReleaseList.begin ();
2926 os << (int)*it3 <<
", ";
2934 os <<
" physicalConfigDedicated: " << std::endl;
2939 os <<
" soundingRsUlConfigDedicated: " << std::endl;
2956 std::bitset<0> bitset0;
2959 std::bitset<3> sysInfoBlkT1Opts;
2963 std::bitset<1> cellAccessRelatedInfoOpts;
2967 int numPlmnIdentityInfoElements;
2969 for (
int i = 0; i < numPlmnIdentityInfoElements; i++)
2978 std::bitset<16> trackingAreaCode;
2982 std::bitset<28> cellIdentity;
2995 if (cellAccessRelatedInfoOpts[0])
2998 std::bitset<27> csgIdentity;
3004 std::bitset<1> qRxLevMinOffsetPresent;
3007 if (qRxLevMinOffsetPresent[0])
3013 if (sysInfoBlkT1Opts[2])
3023 int numSchedulingInfo;
3025 for (
int i = 0; i < numSchedulingInfo; i++)
3031 for (
int j = 0; j < numSibType; j++)
3037 if (sysInfoBlkT1Opts[1])
3049 if (sysInfoBlkT1Opts[0])
3060 std::bitset<0> bitset0;
3063 std::bitset<2> sysInfoBlkT2Opts;
3065 if (sysInfoBlkT2Opts[1])
3084 std::bitset<2> freqInfoOpts;
3086 if (freqInfoOpts[1])
3092 if (freqInfoOpts[0])
3102 if (sysInfoBlkT2Opts[0])
3118 std::bitset<0> bitset0;
3121 std::bitset<9> rrCfgCommOptions;
3125 if (rrCfgCommOptions[8])
3131 std::bitset<1> prachConfigInfoPresent;
3138 if (prachConfigInfoPresent[0])
3144 if (rrCfgCommOptions[7])
3185 if (rrCfgCommOptions[6])
3191 if (rrCfgCommOptions[5])
3197 if (rrCfgCommOptions[4])
3203 if (rrCfgCommOptions[3])
3209 if (rrCfgCommOptions[2])
3215 if (rrCfgCommOptions[1])
3221 if (rrCfgCommOptions[0])
3235 std::bitset<0> bitset0;
3241 std::bitset<1> preamblesGroupAConfigPresent;
3300 if (preamblesGroupAConfigPresent[0])
3393 std::bitset<0> bitset0;
3411 std::bitset<1> prachConfigInfoPresent;
3416 if (prachConfigInfoPresent[0])
3504 std::bitset<4> measResultOptionalPresent;
3527 int measResultNeighCellsChoice;
3532 if (measResultNeighCellsChoice == 0)
3538 for (
int i = 0; i < numElems; i++)
3542 std::bitset<1> isCgiInfoPresent;
3549 measResultEutra.
haveCgiInfo = isCgiInfoPresent[0];
3550 if (isCgiInfoPresent[0])
3552 std::bitset<1> havePlmnIdentityList;
3562 std::bitset<28> cellId;
3567 std::bitset<16> trArCo;
3572 if (havePlmnIdentityList[0])
3577 for (
int j = 0; j < numPlmnElems; j++)
3587 std::bitset<2> measResultOpts;
3591 if (measResultOpts[1])
3599 if (measResultOpts[0])
3610 if (measResultNeighCellsChoice == 1)
3616 if (measResultNeighCellsChoice == 2)
3621 if (measResultNeighCellsChoice == 3)
3632 for (
int i = 0; i < numElems; i++)
3639 std::bitset<2> measResultScellPresent;
3646 std::bitset<2> measResultOpts;
3650 if (measResultOpts[1])
3658 if (measResultOpts[0])
3680 std::bitset<1> isMccPresent;
3683 if (isMccPresent[0])
3694 for (
int j = mncDigits - 1; j >= 0; j--)
3697 mnc +=
n * pow (10,j);
3710 std::bitset<0> bitset0;
3711 std::bitset<2> bitset2;
3712 std::bitset<11> bitset11;
3721 int measObjectToRemoveListElems;
3724 for (
int i = 0; i < measObjectToRemoveListElems; i++)
3734 int measObjectToAddModListElems;
3737 for (
int i = 0; i < measObjectToAddModListElems; i++)
3746 int measObjectChoice;
3749 switch (measObjectChoice)
3769 std::bitset<5> measObjectEutraOpts;
3790 if (measObjectEutraOpts[4])
3796 for (
int i = 0; i < numElems; i++)
3803 if (measObjectEutraOpts[3])
3809 for (
int i = 0; i < numElems; i++)
3830 if (measObjectEutraOpts[2])
3836 for (
int i = 0; i < numElems; i++)
3844 if (measObjectEutraOpts[1])
3850 for (
int i = 0; i < numElems; i++)
3859 std::bitset<1> isRangePresent;
3927 if (measObjectEutraOpts[0])
3941 int reportConfigToRemoveListElems;
3944 for (
int i = 0; i < reportConfigToRemoveListElems; i++)
3954 int reportConfigToAddModListElems;
3957 for (
int i = 0; i < reportConfigToAddModListElems; i++)
3966 int reportConfigChoice;
3969 if (reportConfigChoice == 0)
3975 int triggerTypeChoice;
3978 if (triggerTypeChoice == 0)
3988 switch (eventIdChoice)
4082 if (triggerTypeChoice == 1)
4209 if (reportConfigChoice == 1)
4222 int measIdToRemoveListElems;
4225 for (
int i = 0; i < measIdToRemoveListElems; i++)
4235 int measIdToAddModListElems;
4238 for (
int i = 0; i < measIdToAddModListElems; i++)
4261 std::bitset<4> quantityConfigOpts;
4264 if (quantityConfigOpts[3])
4377 if (quantityConfigOpts[2])
4382 if (quantityConfigOpts[1])
4387 if (quantityConfigOpts[0])
4398 int measGapConfigChoice;
4400 switch (measGapConfigChoice)
4411 int gapOffsetChoice;
4413 switch (gapOffsetChoice)
4447 int speedStateParsChoice;
4449 switch (speedStateParsChoice)
4527 m_mmec = std::bitset<8> (0ul);
4528 m_mTmsi = std::bitset<32> (0ul);
4530 m_spare = std::bitset<1> (0ul);
4541 static TypeId tid =
TypeId (
"ns3::RrcConnectionRequestHeader")
4543 .SetGroupName(
"Lte")
4551 os <<
"MMEC:" <<
m_mmec << std::endl;
4552 os <<
"MTMSI:" <<
m_mTmsi << std::endl;
4554 os <<
"Spare: " <<
m_spare << std::endl;
4603 std::bitset<1> dummy;
4604 std::bitset<0> optionalOrDefaultMask;
4682 os <<
"radioResourceConfigDedicated:" << std::endl;
4731 std::bitset<0> bitset0;
4732 std::bitset<1> bitset1;
4733 std::bitset<2> bitset2;
4747 int criticalExtensionChoice;
4749 if (criticalExtensionChoice == 1)
4754 else if (criticalExtensionChoice == 0)
4817 std::list<LteRrcSap::SrbToAddMod>
4823 std::list<LteRrcSap::DrbToAddMod>
4889 std::bitset<0> bitset0;
4992 std::bitset<0> bitset0;
5078 std::bitset<6> options;
5097 std::bitset<4> mobCtrlIntoOptional;
5100 mobCtrlIntoOptional.set (1,0);
5152 std::bitset<2> noncriticalExtension_v890;
5153 noncriticalExtension_v890.set (1,0);
5160 std::bitset<3> noncriticalExtension_v920;
5161 noncriticalExtension_v920.set (1,0);
5162 noncriticalExtension_v920.set (1,0);
5177 std::bitset<0> bitset0;
5206 else if (c1Chosen == 0)
5209 std::bitset<6> rrcConnRecOpts;
5222 std::bitset<4> mobCtrlOpts;
5233 std::bitset<1> ulCarrierFreqPresent;
5239 if (ulCarrierFreqPresent[0])
5250 std::bitset<1> ulBandwidthPresent;
5256 if (ulBandwidthPresent[0])
5273 std::bitset<16> cRnti;
5292 if (rrcConnRecOpts[3])
5305 if (rrcConnRecOpts[1])
5332 os <<
" measObjectToRemoveList: ";
5334 std::list<uint8_t>::iterator it = auxList.begin ();
5335 for (; it != auxList.end (); it++)
5337 os << (int) *it <<
", ";
5343 os <<
" reportConfigToRemoveList: ";
5345 std::list<uint8_t>::iterator it = auxList.begin ();
5346 for (; it != auxList.end (); it++)
5348 os << (int) *it <<
", ";
5354 os <<
" measIdToRemoveList: ";
5356 std::list<uint8_t>::iterator it = auxList.begin ();
5357 for (; it != auxList.end (); it++)
5359 os << (int) *it <<
", ";
5366 os <<
" measObjectToAddMod: " << std::endl;
5368 std::list<LteRrcSap::MeasObjectToAddMod>::iterator it = auxList.begin ();
5369 for (; it != auxList.end (); it++)
5371 os <<
" measObjectId: " << (int)it->measObjectId << std::endl;
5372 os <<
" carrierFreq: " << (
int)it->measObjectEutra.carrierFreq << std::endl;
5373 os <<
" allowedMeasBandwidth: " << (int)it->measObjectEutra.allowedMeasBandwidth << std::endl;
5374 os <<
" presenceAntennaPort1: " << it->measObjectEutra.presenceAntennaPort1 << std::endl;
5375 os <<
" neighCellConfig: " << (
int) it->measObjectEutra.neighCellConfig << std::endl;
5376 os <<
" offsetFreq: " << (int)it->measObjectEutra.offsetFreq << std::endl;
5379 if (!it->measObjectEutra.cellsToRemoveList.empty ())
5381 os <<
" cellsToRemoveList: ";
5382 std::list<uint8_t> auxList = it->measObjectEutra.cellsToRemoveList;
5383 std::list<uint8_t>::iterator it = auxList.begin ();
5384 for (; it != auxList.end (); it++)
5386 os << (int) *it <<
", ";
5391 if (!it->measObjectEutra.blackCellsToRemoveList.empty ())
5393 os <<
" blackCellsToRemoveList: ";
5394 std::list<uint8_t> auxList = it->measObjectEutra.blackCellsToRemoveList;
5395 std::list<uint8_t>::iterator it = auxList.begin ();
5396 for (; it != auxList.end (); it++)
5398 os << (int) *it <<
", ";
5403 if (!it->measObjectEutra.cellsToAddModList.empty ())
5405 os <<
" cellsToAddModList: " << std::endl;
5406 std::list<LteRrcSap::CellsToAddMod> auxList = it->measObjectEutra.cellsToAddModList;
5407 std::list<LteRrcSap::CellsToAddMod>::iterator it = auxList.begin ();
5408 for (; it != auxList.end (); it++)
5410 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5411 os <<
" physCellId: " << (
int)it->physCellId << std::endl;
5412 os <<
" cellIndividualOffset: " << (int)it->cellIndividualOffset << std::endl;
5413 os <<
" ------ " << std::endl;
5417 if (!it->measObjectEutra.blackCellsToAddModList.empty ())
5419 os <<
" blackCellsToAddModList: " << std::endl;
5420 std::list<LteRrcSap::BlackCellsToAddMod> auxList = it->measObjectEutra.blackCellsToAddModList;
5421 std::list<LteRrcSap::BlackCellsToAddMod>::iterator it = auxList.begin ();
5422 for (; it != auxList.end (); it++)
5424 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5425 os <<
" physCellIdRange.start: " << (
int)it->physCellIdRange.start << std::endl;
5426 os <<
" physCellIdRange.haveRange: " << it->physCellIdRange.haveRange << std::endl;
5427 os <<
" physCellIdRange.range: " << (int)it->physCellIdRange.range << std::endl;
5428 os <<
" ------ " << std::endl;
5432 os <<
" haveCellForWhichToReportCGI: " << it->measObjectEutra.haveCellForWhichToReportCGI << std::endl;
5433 os <<
" cellForWhichToReportCGI: " << (int)it->measObjectEutra.cellForWhichToReportCGI << std::endl;
5434 os <<
" ------------- " << std::endl;
5441 os <<
" reportConfigToAddModList: " << std::endl;
5443 std::list<LteRrcSap::ReportConfigToAddMod>::iterator it = auxList.begin ();
5444 for (; it != auxList.end (); it++)
5446 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5447 os <<
" reportConfigEutra.triggerType " << (
int)it->reportConfigEutra.triggerType << std::endl;
5450 os <<
" reportConfigEutra.eventId " << (int)it->reportConfigEutra.eventId << std::endl;
5453 os <<
" reportConfigEutra.reportOnLeave " << (int)it->reportConfigEutra.reportOnLeave << std::endl;
5454 os <<
" reportConfigEutra.a3Offset " << (
int)it->reportConfigEutra.a3Offset << std::endl;
5458 os <<
" reportConfigEutra.threshold1.choice " << (int)it->reportConfigEutra.threshold1.choice << std::endl;
5459 os <<
" reportConfigEutra.threshold1.range " << (
int)it->reportConfigEutra.threshold1.range << std::endl;
5462 os <<
" reportConfigEutra.threshold2.choice " << (int)it->reportConfigEutra.threshold2.choice << std::endl;
5463 os <<
" reportConfigEutra.threshold2.range " << (
int)it->reportConfigEutra.threshold2.range << std::endl;
5466 os <<
" reportConfigEutra.hysteresis " << (int)it->reportConfigEutra.hysteresis << std::endl;
5467 os <<
" reportConfigEutra.timeToTrigger " << (
int)it->reportConfigEutra.timeToTrigger << std::endl;
5471 os <<
" reportConfigEutra.purpose " << (int)it->reportConfigEutra.purpose << std::endl;
5473 os <<
" reportConfigEutra.triggerQuantity " << (int)it->reportConfigEutra.triggerQuantity << std::endl;
5474 os <<
" reportConfigEutra.reportQuantity " << (
int)it->reportConfigEutra.reportQuantity << std::endl;
5475 os <<
" reportConfigEutra.maxReportCells " << (int)it->reportConfigEutra.maxReportCells << std::endl;
5476 os <<
" reportConfigEutra.reportInterval " << (
int)it->reportConfigEutra.reportInterval << std::endl;
5477 os <<
" reportConfigEutra.reportAmount " << (int)it->reportConfigEutra.reportAmount << std::endl;
5483 os <<
" measIdToAddModList: " << std::endl;
5485 std::list<LteRrcSap::MeasIdToAddMod>::iterator it = auxList.begin ();
5486 for (; it != auxList.end (); it++)
5488 os <<
" measId: " << (int)it->measId << std::endl;
5489 os <<
" measObjectId: " << (
int)it->measObjectId << std::endl;
5490 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5491 os <<
" ------ " << std::endl;
5654 std::list<LteRrcSap::SrbToAddMod>
5660 std::list<LteRrcSap::DrbToAddMod>
5704 std::bitset<4> handoverPrepInfoOpts;
5705 handoverPrepInfoOpts.set (3,1);
5706 handoverPrepInfoOpts.set (2,0);
5707 handoverPrepInfoOpts.set (1,0);
5708 handoverPrepInfoOpts.set (0,0);
5762 std::bitset<0> bitset0;
5770 int criticalExtensionsChosen;
5773 if (criticalExtensionsChosen == 1)
5778 else if (criticalExtensionsChosen == 0)
5787 else if (c1Chosen == 0)
5790 std::bitset<4> handoverPrepInfoOpts;
5795 for (
int i = 0; i <
n; i++)
5801 if (handoverPrepInfoOpts[3])
5818 std::bitset<16> cRnti;
5833 std::bitset<8> systemFrameNumber;
5837 std::bitset<10> spare;
5854 if (handoverPrepInfoOpts[2])
5859 if (handoverPrepInfoOpts[1])
5864 if (handoverPrepInfoOpts[0])
5975 std::bitset<0> bitset0;
6000 std::bitset<16> cRnti;
6010 std::bitset<16> shortMacI;
6032 std::bitset<2> spare;
6124 std::bitset<0> bitset0;
6138 int criticalExtensionsChoice;
6140 if (criticalExtensionsChoice == 1)
6145 else if (criticalExtensionsChoice == 0)
6158 std::bitset<1> nonCriticalExtensionPresent;
6176 os <<
"RadioResourceConfigDedicated: " << std::endl;
6244 std::bitset<0> bitset0;
6258 int criticalExtensionsChoice;
6260 if (criticalExtensionsChoice == 1)
6265 else if (criticalExtensionsChoice == 0)
6268 std::bitset<1> opts;
6343 std::bitset<0> bitset0;
6352 int criticalExtensionsChoice;
6354 if (criticalExtensionsChoice == 1)
6359 else if (criticalExtensionsChoice == 0)
6362 std::bitset<1> opts;
6437 std::bitset<0> bitset0;
6451 int criticalExtensionsChoice;
6453 if (criticalExtensionsChoice == 1)
6458 else if (criticalExtensionsChoice == 0)
6467 std::bitset<3> opts;
6559 std::bitset<0> bitset0;
6569 int criticalExtensionsChoice;
6571 if (criticalExtensionsChoice == 1)
6576 else if (criticalExtensionsChoice == 0)
6586 else if (c1Choice == 0)
6589 std::bitset<1> opts;
6669 std::bitset<0> bitset0;
6675 int criticalExtensionsChoice;
6678 if (criticalExtensionsChoice == 1)
6683 else if (criticalExtensionsChoice == 0)
6696 std::bitset<1> isNonCriticalExtensionPresent;
6702 if (isNonCriticalExtensionPresent[0])
6725 std::list<LteRrcSap::MeasResultEutra>::iterator it = measResultListEutra.begin ();
6726 for (; it != measResultListEutra.end (); it++)
6728 os <<
" physCellId =" << (int) it->physCellId << std::endl;
6729 os <<
" haveCgiInfo =" << it->haveCgiInfo << std::endl;
6730 if (it->haveCgiInfo)
6732 os <<
" plmnIdentity = " << (int) it->cgiInfo.plmnIdentity << std::endl;
6733 os <<
" cellIdentity = " << (
int) it->cgiInfo.cellIdentity << std::endl;
6734 os <<
" trackingAreaCode = " << (int) it->cgiInfo.trackingAreaCode << std::endl;
6735 os <<
" havePlmnIdentityList = " << !it->cgiInfo.plmnIdentityList.empty () << std::endl;
6736 if (!it->cgiInfo.plmnIdentityList.empty ())
6738 for (std::list<uint32_t>::iterator it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.end (); it2++)
6740 os <<
" plmnId : " << *it2 << std::endl;
6745 os <<
" haveRsrpResult =" << it->haveRsrpResult << std::endl;
6746 if (it->haveRsrpResult)
6748 os <<
" rsrpResult =" << (int) it->rsrpResult << std::endl;
6751 os <<
" haveRsrqResult =" << it->haveRsrqResult << std::endl;
6752 if (it->haveRsrqResult)
6754 os <<
" rsrqResult =" << (int) it->rsrqResult << std::endl;
6795 std::cout <<
"UL DCCH MSG TYPE: " <<
m_messageType << std::endl;
6807 std::bitset<0> bitset0;
6856 std::cout <<
"DL DCCH MSG TYPE: " <<
m_messageType << std::endl;
6868 std::bitset<0> bitset0;
6917 std::cout <<
"UL CCCH MSG TYPE: " <<
m_messageType << std::endl;
6929 std::bitset<0> bitset0;
6978 std::cout <<
"DL CCCH MSG TYPE: " <<
m_messageType << std::endl;
6990 std::bitset<0> bitset0;
uint32_t sCellIndex
SCell index.
bool haveRange
has a range?
RrcConnectionRequest structure.
enum ns3::LteRrcSap::ReportConfigEutra::@67 reportQuantity
Report type enumeration.
SystemInformationBlockType2 sourceSystemInformationBlockType2
source system information block type 2
PhysicalConfigDedicated structure.
enum ns3::LteRrcSap::ThresholdEutra::@63 choice
Threshold enumeration.
bool haveNonCriticalExtension
have critical extension?
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
LteRrcSap::HandoverPreparationInfo GetMessage() const
Returns a HandoverPreparationInfo IE from the values in the class attributes.
uint32_t carrierFreq
carrier frequency
CellIdentification structure.
uint8_t drbIdentity
DRB identity.
RadioResourceConfigCommonSCell radioResourceConfigCommonSCell
radio resource config common SCell
CarrierFreqEutra carrierFreq
carrier frequency
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
PdschConfigDedicated pdschConfigDedicated
PDSCH config dedicated.
uint16_t physCellId
Phy cell ID.
MeasurementReport structure.
uint32_t Deserialize(Buffer::Iterator bIterator)
uint8_t measObjectId
measure object ID
PhysCellIdRange physCellIdRange
Phy cell ID range.
PdschConfigDedicated pdschConfigDedicated
PDSCH config dedicated.
MeasConfig sourceMeasConfig
source measure config
uint32_t sourceDlCarrierFreq
source DL carrier frequency
uint8_t srbIdentity
SB identity.
Buffer::Iterator DeserializeUlCcchMessage(Buffer::Iterator bIterator)
Deserialize DL CCCH message function.
MobilityControlInfo structure.
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
uint8_t cellIndex
cell index
std::list< MeasObjectToAddMod > measObjectToAddModList
measure object to add mod list
uint8_t numberOfRaPreambles
number of RA preambles
Event A3: Neighbour becomes amount of offset better than PCell.
RadioResourceConfigCommon structure.
SoundingRsUlConfigDedicated soundingRsUlConfigDedicated
sounding RS UL config dedicated
bool presenceAntennaPort1
antenna port 1 present?
uint8_t hysteresis
Parameter used within the entry and leave condition of an event triggered reporting condition...
std::list< CellsToAddMod > cellsToAddModList
cells to add mod list
RSRP is used for the threshold.
QuantityConfig quantityConfig
quantity config
std::list< uint8_t > reportConfigToRemoveList
report config to remove list
RlcConfig rlcConfig
RLC config.
uint8_t rsrpResult
RSRP result.
std::list< MeasResultEutra > measResultListEutra
measure result list eutra
uint8_t reportConfigId
report config ID
HandoverPreparationInfoHeader()
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5.
automatically resized byte buffer
RadioResourceConfigDedicatedSCell radioResourceConfigDedicateSCell
radio resource config dedicated SCell
uint32_t Deserialize(Buffer::Iterator bIterator)
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
std::list< SrbToAddMod > srbToAddModList
SRB to add mod list.
enum ns3::LteRrcSap::ReportConfigEutra::report purpose
purpose
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
std::list< uint8_t > measObjectToRemoveList
measure object to remove list
bool haveNonUlConfiguration
have non UL configuration?
uint16_t start
starting cell ID
uint8_t tEvaluation
evaluation
PdschConfigCommon pdschConfigCommon
4: Physical configuration, physical channels pdsch-ConfigCommon-r10
uint16_t srsConfigIndex
SRS config index.
MeasObjectEutra measObjectEutra
measure object eutra
uint16_t sourceUeIdentity
source UE identity
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
bool haveCarrierFreq
have carrier frequency?
enum ns3::LteRrcSap::ReportConfigEutra::@66 triggerQuantity
Trigger type enumeration.
uint8_t neighCellConfig
neighbor cell config
RachConfigDedicated rachConfigDedicated
RACH config dedicated.
bool haveSmeasure
have S measure?
Reference Signal Received Quality.
MeasConfig measConfig
measure config
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
uint32_t cellIdentity
cell identity
uint8_t rsrpResult
the RSRP result
uint8_t waitTime
wait time
uint32_t ulCarrierFreq
UL carrier frequency.
bool haveRsrqResult
have RSRQ result?
uint32_t Deserialize(Buffer::Iterator bIterator)
iterator in a Buffer instance
bool haveRadioResourceConfigDedicated
have radio resource config dedicated
LteRrcSap::AsConfig m_asConfig
AS config.
bool havePdschConfigDedicated
have PDSCH config dedicated?
bool haveNonUlConfiguration
have non UL configuration?
LteRrcSap::AsConfig GetAsConfig() const
Getter for m_asConfig.
Buffer::Iterator DeserializeDlCcchMessage(Buffer::Iterator bIterator)
Deserialize DL CCCH message function.
uint16_t trackingAreaCode
tracking area code
std::list< BlackCellsToAddMod > blackCellsToAddModList
black cells to add mod list
Buffer::Iterator DeserializeDlDcchMessage(Buffer::Iterator bIterator)
Deserialize DL DCCH message function.
AsConfig asConfig
AS config.
SystemInformationBlockType1 sourceSystemInformationBlockType1
source system information block type 1
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
PreambleInfo preambleInfo
preamble info
uint8_t rsrpResult
RSRP result.
CellIdentification cellIdentification
cell identification
bool haveUlConfiguration
have UL configuration
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
AntennaInfoCommon antennaInfoCommon
2: Physical configuration, general antennaInfoCommon-r10
enum ns3::LteRrcSap::MeasGapConfig::gap gapOffsetChoice
gap offset
PhysicalConfigDedicatedSCell structure.
uint8_t preambleTransMax
preamble transmit maximum
MeasResults measResults
measure results
FreqInfo ulFreqInfo
UL frequency info.
MeasResultScell structure.
uint8_t epsBearerIdentity
EPS bearer identity.
uint8_t tHystNormal
hyst normal
UlPowerControlCommonSCell ulPowerControlCommonSCell
3GPP TS 36.331 v.11.10 R11 pag.223
uint64_t ueIdentity
UE identity.
int8_t referenceSignalPower
INTEGER (-60..50),.
enum ns3::LteRrcSap::SpeedStatePars::action type
action type
RrcConnectionReestablishment structure.
LogicalChannelConfig logicalChannelConfig
logical channel config
RachConfigCommon rachConfigCommon
RACH config common.
void SerializeDlDcchMessage(int msgType) const
Serialize DL DCCH message function.
ReportConfigEutra reportConfigEutra
report config eutra
uint8_t rsrqResult
the RSRQ result
uint8_t logicalChannelGroup
logical channel group
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
bool haveMeasurementResultsNeighCell
always false since not implemented
std::list< uint32_t > plmnIdentityList
PLMN identity list.
NonUlConfiguration nonUlConfiguration
non UL configuration
uint8_t nCellChangeHigh
cell change high
bool haveRadioResourceConfigDedicatedSCell
have radio resource config dedicated SCell?
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
uint8_t sMeasure
S measure.
Event A5: PCell becomes worse than absolute threshold1 AND Neighbour becomes better than another abso...
uint32_t dlCarrierFreq
ARFCN - valueEUTRA.
bool haveMeasGapConfig
have measure gap config?
MeasResultEutra structure.
std::list< MeasResultScell > measResultScell
measure results Scells
uint16_t alpha
alpha value
RrcConnectionReconfiguration structure.
std::list< MeasIdToAddMod > measIdToAddModList
measure ID to add mod list
uint8_t srsBandwidth
SRS bandwidth.
bool haveRachConfigDedicated
Have RACH config dedicated?
uint8_t raPrachMaskIndex
RA PRACH mask index.
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
PhysicalConfigDedicated physicalConfigDedicated
physical config dedicated
uint8_t filterCoefficientRSRP
filter coefficient RSRP
bool haveRsrpResult
have RSRP result?
RrcConnectionReconfigurationCompleted structure.
MeasResultServFreqList measScellResultList
measure SCell result list
enum ns3::LteRrcSap::ReportConfigEutra::@68 reportInterval
Report interval enumeration.
bool haveAntennaInfoUlDedicated
have antenna info UL dedicated?
enum ns3::LteRrcSap::ReportConfigEutra::@65 eventId
Event enumeration.
std::list< SCellToAddMod > sCellsToAddModList
SCell to add mod list.
bool haveRsrpResult
have RSRP result
MeasIdToAddMod structure.
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
MobilityStateParameters mobilityStateParameters
mobility state parameters
PrachConfigSCell prachConfigSCell
PRACH config SCell.
RrcConnectionSetupCompleted structure.
HandoverPreparationInfo structure.
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated
RrcConnectionSetup structure.
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
RadioResourceConfigCommonSib structure.
RrcConnectionReestablishmentRequest structure.
uint8_t raPreambleIndex
RA preamble index.
RadioResourceConfigDedicated sourceRadioResourceConfig
source radio resource config
uint8_t reportConfigId
report config ID
uint16_t cellForWhichToReportCGI
cell for which to report CGI
uint16_t servFreqId
service frequency ID
bool reportOnLeave
Indicates whether or not the UE shall initiate the measurement reporting procedure when the leaving c...
uint16_t physCellId
Phy cell ID.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
bool haveQuantityConfig
have quantity config?
uint16_t targetPhysCellId
target Phy cell ID
RrcConnectionReject structure.
PhysicalConfigDedicatedSCell physicalConfigDedicatedSCell
physical config dedicated SCell
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
bool haveMobilityControlInfo
have mobility control info
void SerializeUlCcchMessage(int msgType) const
Serialize UL CCCH message function.
uint16_t prioritizedBitRateKbps
prioritized bit rate Kbps
uint32_t Deserialize(Buffer::Iterator bIterator)
uint8_t maxReportCells
Maximum number of cells, excluding the serving cell, to be included in the measurement report...
ReestablishmentCause
ReestablishmentCause enumeration.
int8_t cellIndividualOffset
cell individual offset
void SerializeDlCcchMessage(int msgType) const
Serialize DL CCCH message function.
Reference Signal Received Power.
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated
bool haveMeasResultNeighCells
have measure result neighbor cells
uint16_t dlBandwidth
1: Cell characteristics
uint32_t physCellId
physical cell ID
uint8_t filterCoefficientRSRQ
filter coefficient RSRQ
bool havePdschConfigDedicated
have PDSCH config dedicated?
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
uint8_t logicalChannelIdentity
logical channel identify
uint8_t sfHigh
scale factor high
uint16_t newUeIdentity
new UE identity
MeasGapConfig measGapConfig
measure gap config
RachConfigCommon structure.
uint8_t range
Value range used in RSRP/RSRQ threshold.
bool havePhysicalConfigDedicated
have physical config dedicated?
bool haveCgiInfo
have CGI info?
uint8_t ulBandwidth
UL bandwidth.
uint8_t reportAmount
Number of measurement reports applicable, always assumed to be infinite.
bool haveSoundingRsUlConfigDedicated
have sounding RS UL config dedicated?
RrcConnectionReestablishmentReject structure.
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
BlackCellsToAddMod structure.
uint8_t measObjectId
measure object ID
void SetMessage(LteRrcSap::HandoverPreparationInfo msg)
Receives a HandoverPreparationInfo IE and stores the contents into the class attributes.
uint8_t gapOffsetValue
gap offset value
uint16_t physCellId
Phy cell ID.
RadioResourceConfigCommon radioResourceConfigCommon
radio resource config common
uint32_t plmnIdentity
PLMN identity.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
uint32_t dlCarrierFreq
DL carrier frequency.
CarrierBandwidthEutra carrierBandwidth
carrier bandwidth
int8_t a3Offset
Offset value for Event A3. An integer between -30 and 30. The actual value is (value * 0...
bool haveUlConfiguration
have UL configuration?
LogicalChannelConfig logicalChannelConfig
logical channel config
RachConfigCommon rachConfigCommon
RACH config common.
SpeedStatePars speedStatePars
speed state parameters
uint8_t raResponseWindowSize
RA response window size.
ReestabUeIdentity structure.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
bool haveCarrierBandwidth
have carrier bandwidth?
bool haveAntennaInfoDedicated
have antenna info dedicated?
uint8_t ulBandwidth
UL bandwidth.
uint8_t rsrqResult
RSRQ result.
uint32_t Deserialize(Buffer::Iterator bIterator)
std::list< uint8_t > blackCellsToRemoveList
black cells to remove list
NonCriticalExtensionConfiguration nonCriticalExtension
3GPP TS 36.331 v.11.10 R11 Sec. 6.2.2 pag. 147 (also known as ETSI TS 136 331 v.11.10 Feb-2015)
Both the RSRP and RSRQ quantities are to be included in the measurement report.
RadioResourceConfigDedicatedSCell structure.
int8_t pb
INTEGER (0..3),.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
bool haveSpeedStatePars
have speed state parameters?
bool haveSoundingRsUlConfigDedicated
have sounding RS UL config dedicated?
uint8_t allowedMeasBandwidth
allowed measure bandwidth
uint8_t cellIndex
cell index
std::list< DrbToAddMod > drbToAddModList
DRB to add mod list.
enum ns3::LteRrcSap::SoundingRsUlConfigDedicated::action type
action type
int8_t offsetFreq
offset frequency
bool haveAntennaInfoDedicated
have antenna info dedicated?
RrcConnectionReestablishmentComplete structure.
uint8_t transmissionMode
transmission mode
enum ns3::LteRrcSap::RlcConfig::direction choice
direction choice
void SerializeUlDcchMessage(int msgType) const
Serialize UL DCCH message function.
Event A1: Serving becomes better than absolute threshold.
enum ns3::LteRrcSap::MeasGapConfig::action type
action type
RSRQ is used for the threshold.
MobilityControlInfo mobilityControlInfo
mobility control info
bool haveMeasConfig
have measure config
Event A4: Neighbour becomes better than absolute threshold.
bool haveRsrqResult
have RSRQ result?
AntennaInfoDedicated antennaInfo
antenna info
uint32_t plmnIdentity
PLMN identity.
std::list< uint8_t > cellsToRemoveList
cells to remove list
uint8_t rsrqResult
RSRQ result.
ReestablishmentCause reestablishmentCause
reestablishment cause
uint8_t dlBandwidth
DL bandwidth.
NonCriticalExtensionConfiguration structure.
RrcConnectionRelease structure.
SoundingRsUlConfigDedicated soundingRsUlConfigDedicated
sounding RS UL config dedicated
uint8_t sfMedium
scale factor medium
LogicalChannelConfig structure.
uint16_t timeToTrigger
Time during which specific criteria for the event needs to be met in order to trigger a measurement r...
uint16_t bucketSizeDurationMs
bucket size duration ms
UlConfiguration ulConfiguration
UL configuration.
Event A2: Serving becomes worse than absolute threshold.
Threshold for event evaluation.
This class only serves to discriminate which message type has been received in uplink (ue to eNb) for...
std::list< uint8_t > measIdToRemoveList
measure ID to remove list
a unique identifier for an interface.
std::list< ReportConfigToAddMod > reportConfigToAddModList
report config to add mod list
ReportConfigToAddMod structure.
ReestabUeIdentity ueIdentity
UE identity.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
std::list< uint8_t > drbToReleaseList
DRB to release list.
Buffer::Iterator DeserializeUlDcchMessage(Buffer::Iterator bIterator)
Deserialize UL DCCH message function.
MeasObjectToAddMod structure.
SpeedStateScaleFactors timeToTriggerSf
time to trigger scale factors
uint16_t antennaPortsCount
antenna ports count
RaSupervisionInfo raSupervisionInfo
RA supervision info.
uint8_t nCellChangeMedium
cell change medium
bool haveScellsMeas
has SCells measure
AntennaInfoDedicated antennaInfo
antenna info dedicated
bool haveMeasurementResultsServingSCells
have measure results serving Scells
RadioResourceConfigCommonSCell.
RadioResourceConfigDedicated structure.
uint32_t ulCarrierFreq
UL carrier frequency.
MasterInformationBlock sourceMasterInformationBlock
source master information block
enum ns3::LteRrcSap::ReportConfigEutra::@64 triggerType
Trigger enumeration.
bool haveCellForWhichToReportCGI
have cell for which to report CGI?
AntennaInfoDedicated antennaInfoUl
antenna info UL
ThresholdEutra threshold2
Threshold for event A5.