25 #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
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);
954 switch (qOffsetRange)
1057 switch (thresholdEutra.
choice)
1075 std::bitset<11> measConfigOptional;
1085 measConfigOptional.set (1,
false );
1108 std::bitset<5> measObjOpts;
1109 measObjOpts.set (4,!it->measObjectEutra.cellsToRemoveList.empty () );
1110 measObjOpts.set (3,!it->measObjectEutra.cellsToAddModList.empty () );
1111 measObjOpts.set (2,!it->measObjectEutra.blackCellsToRemoveList.empty () );
1112 measObjOpts.set (1,!it->measObjectEutra.blackCellsToAddModList.empty () );
1113 measObjOpts.set (0,it->measObjectEutra.haveCellForWhichToReportCGI);
1126 if (!it->measObjectEutra.cellsToRemoveList.empty ())
1129 for (std::list<uint8_t>::iterator it2 = it->measObjectEutra.cellsToRemoveList.begin (); it2 != it->measObjectEutra.cellsToRemoveList.end (); it2++)
1135 if (!it->measObjectEutra.cellsToAddModList.empty ())
1138 for (std::list<LteRrcSap::CellsToAddMod>::iterator it2 = it->measObjectEutra.cellsToAddModList.begin (); it2 != it->measObjectEutra.cellsToAddModList.end (); it2++)
1153 if (!it->measObjectEutra.blackCellsToRemoveList.empty () )
1156 for (std::list<uint8_t>::iterator it2 = it->measObjectEutra.blackCellsToRemoveList.begin (); it2 != it->measObjectEutra.blackCellsToRemoveList.end (); it2++)
1162 if (!it->measObjectEutra.blackCellsToAddModList.empty () )
1165 for (std::list<LteRrcSap::BlackCellsToAddMod>::iterator it2 = it->measObjectEutra.blackCellsToAddModList.begin (); it2 != it->measObjectEutra.blackCellsToAddModList.end (); it2++)
1172 std::bitset<1> rangePresent = std::bitset<1> (it2->physCellIdRange.haveRange);
1175 if (it2->physCellIdRange.haveRange)
1177 switch (it2->physCellIdRange.range)
1229 if (it->measObjectEutra.haveCellForWhichToReportCGI)
1257 switch (it->reportConfigEutra.triggerType)
1262 switch (it->reportConfigEutra.purpose)
1276 switch (it->reportConfigEutra.eventId)
1309 switch (it->reportConfigEutra.timeToTrigger)
1386 switch (it->reportConfigEutra.reportInterval)
1439 switch (it->reportConfigEutra.reportAmount)
1492 std::bitset<4> quantityConfigOpts (0);
1493 quantityConfigOpts.set (3,1);
1731 std::bitset<3> noncriticalExtension_v1020;
1732 noncriticalExtension_v1020.set (2,0);
1733 noncriticalExtension_v1020.set (1,1);
1734 noncriticalExtension_v1020.set (0,0);
1741 std::bitset<4> sCellToAddMod_r10;
1742 sCellToAddMod_r10.set (3,1);
1743 sCellToAddMod_r10.set (2,1);
1744 sCellToAddMod_r10.set (1,1);
1745 sCellToAddMod_r10.set (0,it->haveRadioResourceConfigDedicatedSCell);
1750 std::bitset<2> cellIdentification_r10;
1751 cellIdentification_r10.set(1,1);
1752 cellIdentification_r10.set(0,1);
1761 if (it->haveRadioResourceConfigDedicatedSCell)
1779 std::bitset<2> radioResourceConfigCommonSCell_r10;
1787 std::bitset<5> nonUlConfiguration_r10;
1788 nonUlConfiguration_r10.set (4,1);
1789 nonUlConfiguration_r10.set (3,1);
1790 nonUlConfiguration_r10.set (2,0);
1791 nonUlConfiguration_r10.set (1,1);
1792 nonUlConfiguration_r10.set (0,0);
1797 std::bitset<1> antennaInfoCommon_r10;
1798 antennaInfoCommon_r10.set (0,1);
1802 std::bitset<2> pdschConfigCommon_r10;
1803 pdschConfigCommon_r10.set (1,1);
1804 pdschConfigCommon_r10.set (0,1);
1815 std::bitset<7> UlConfiguration_r10;
1816 UlConfiguration_r10.set (6,1);
1817 UlConfiguration_r10.set (5,0);
1818 UlConfiguration_r10.set (4,1);
1819 UlConfiguration_r10.set (3,0);
1820 UlConfiguration_r10.set (2,0);
1821 UlConfiguration_r10.set (1,1);
1822 UlConfiguration_r10.set (0,0);
1826 std::bitset<3> FreqInfo_r10;
1827 FreqInfo_r10.set (2,1);
1828 FreqInfo_r10.set (1,1);
1829 FreqInfo_r10.set (0,0);
1836 std::bitset<2> UlPowerControlCommonSCell_r10;
1837 UlPowerControlCommonSCell_r10.set (1,0);
1838 UlPowerControlCommonSCell_r10.set (0,1);
1847 std::bitset<1> prachConfigSCell_r10;
1848 prachConfigSCell_r10.set(0,1);
1859 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
1860 RadioResourceConfigDedicatedSCell_r10.set (0,1);
1870 std::bitset<2> pcdscOpt;
1878 std::bitset<4> nulOpt;
1924 std::bitset<7> ulOpt;
2006 int thresholdEutraChoice, range;
2009 switch (thresholdEutraChoice)
2014 thresholdEutra->
range = range;
2020 thresholdEutra->
range = range;
2034 *qOffsetRange = -24;
2037 *qOffsetRange = -22;
2040 *qOffsetRange = -20;
2043 *qOffsetRange = -18;
2046 *qOffsetRange = -16;
2049 *qOffsetRange = -14;
2052 *qOffsetRange = -12;
2055 *qOffsetRange = -10;
2134 std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
2137 if (optionalFieldsPresent[5])
2143 if (optionalFieldsPresent[4])
2149 if (optionalFieldsPresent[3])
2155 for (
int i = 0; i <
n; i++)
2162 if (optionalFieldsPresent[2])
2168 if (optionalFieldsPresent[1])
2175 if (optionalFieldsPresent[0])
2190 srbToAddModList->clear ();
2193 for (
int i = 0; i < numElems; i++)
2198 std::bitset<2> optionalFields;
2206 if (optionalFields[1])
2212 if (optionalFields[0])
2230 srbToAddModList->insert (srbToAddModList->end (),srbToAddMod);
2243 drbToAddModList->clear ();
2245 for (
int i = 0; i <
n; i++)
2249 std::bitset<5> optionalFields;
2252 if (optionalFields[4])
2262 if (optionalFields[3])
2268 if (optionalFields[2])
2275 std::bitset<0> bitset0;
2327 if (optionalFields[1])
2333 if (optionalFields[0])
2338 drbToAddModList->insert (drbToAddModList->end (),drbToAddMod);
2350 std::bitset<1> bitset1;
2364 uint16_t prioritizedBitRateKbps;
2369 prioritizedBitRateKbps = 0;
2372 prioritizedBitRateKbps = 8;
2375 prioritizedBitRateKbps = 16;
2378 prioritizedBitRateKbps = 32;
2381 prioritizedBitRateKbps = 64;
2384 prioritizedBitRateKbps = 128;
2387 prioritizedBitRateKbps = 256;
2390 prioritizedBitRateKbps = 10000;
2393 prioritizedBitRateKbps = 10000;
2399 uint16_t bucketSizeDurationMs;
2403 bucketSizeDurationMs = 50;
2406 bucketSizeDurationMs = 100;
2409 bucketSizeDurationMs = 150;
2412 bucketSizeDurationMs = 300;
2415 bucketSizeDurationMs = 500;
2418 bucketSizeDurationMs = 1000;
2421 bucketSizeDurationMs = 1000;
2438 std::bitset<10> optionalFieldPresent;
2442 if (optionalFieldPresent[9])
2445 std::bitset<0> bitset0;
2457 if (optionalFieldPresent[8])
2462 if (optionalFieldPresent[7])
2467 if (optionalFieldPresent[6])
2472 if (optionalFieldPresent[5])
2477 if (optionalFieldPresent[4])
2482 if (optionalFieldPresent[3])
2488 if (optionalFieldPresent[2])
2505 std::bitset<0> bitset0;
2536 if (optionalFieldPresent[1])
2547 std::bitset<1> codebookSubsetRestrictionPresent;
2554 if (codebookSubsetRestrictionPresent[0])
2560 int txantennaselchosen;
2562 if (txantennaselchosen == 0)
2567 else if (txantennaselchosen == 1)
2574 if (optionalFieldPresent[0])
2586 NS_FATAL_ERROR (
"RrcAsn1Header Print() function must also specify LteRrcSap::RadioResourceConfigDedicated as a second argument");
2593 std::bitset<2> nonCriticalExtension_v890;
2596 if (nonCriticalExtension_v890[0])
2599 std::bitset<3> nonCriticalExtension_v920;
2601 if (nonCriticalExtension_v920[0])
2604 std::bitset<3> nonCriticalExtension_v1020;
2606 NS_ASSERT (!nonCriticalExtension_v1020[2]);
2607 NS_ASSERT (nonCriticalExtension_v1020[1]);
2608 NS_ASSERT (!nonCriticalExtension_v1020[0]);
2614 for (
int i = 0; i < numElems; i++)
2616 std::bitset<4> sCellToAddMod_r10;
2633 if (sCellToAddMod_r10[0])
2651 std::bitset<2> cellIdentification_r10;
2669 std::bitset<2> radioResourceConfigCommonSCell_r10;
2675 std::bitset<5> nonUlConfiguration_r10;
2681 std::bitset<1> antennaInfoCommon_r10;
2686 std::bitset<2> pdschConfigCommon_r10;
2695 std::bitset<7> UlConfiguration_r10;
2698 std::bitset<3> FreqInfo_r10;
2706 std::bitset<2> UlPowerControlCommonSCell_r10;
2711 std::bitset<1> prachConfigSCell_r10;
2724 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
2735 std::bitset<2> pcdscOpt;
2741 std::bitset<4> nulOpt;
2759 std::bitset<1> codebookSubsetRestrictionPresent;
2766 if (codebookSubsetRestrictionPresent[0])
2773 int txantennaselchosen;
2775 if (txantennaselchosen == 0)
2780 else if (txantennaselchosen == 1)
2791 std::bitset<0> bitset0;
2806 std::bitset<7> ulOpt;
2827 std::bitset<1> codebookSubsetRestrictionPresent;
2834 if (codebookSubsetRestrictionPresent[0])
2841 int txantennaselchosen;
2843 if (txantennaselchosen == 0)
2848 else if (txantennaselchosen == 1)
2873 std::bitset<0> bitset0;
2912 os <<
" srbToAddModList: " << std::endl;
2913 std::list<LteRrcSap::SrbToAddMod>::iterator it = radioResourceConfigDedicated.
srbToAddModList.begin ();
2914 for (; it != radioResourceConfigDedicated.
srbToAddModList.end (); it++)
2916 os <<
" srbIdentity: " << (int)it->srbIdentity << std::endl;
2917 os <<
" logicalChannelConfig: " << std::endl;
2918 os <<
" priority: " << (
int)it->logicalChannelConfig.priority << std::endl;
2919 os <<
" prioritizedBitRateKbps: " << (int)it->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
2920 os <<
" bucketSizeDurationMs: " << (
int)it->logicalChannelConfig.bucketSizeDurationMs << std::endl;
2921 os <<
" logicalChannelGroup: " << (int)it->logicalChannelConfig.logicalChannelGroup << std::endl;
2925 os <<
" drbToAddModList: " << std::endl;
2926 std::list<LteRrcSap::DrbToAddMod>::iterator it2 = radioResourceConfigDedicated.
drbToAddModList.begin ();
2927 for (; it2 != radioResourceConfigDedicated.
drbToAddModList.end (); it2++)
2929 os <<
" epsBearerIdentity: " << (int)it2->epsBearerIdentity << std::endl;
2930 os <<
" drbIdentity: " << (
int)it2->drbIdentity << std::endl;
2931 os <<
" rlcConfig: " << it2->rlcConfig.choice << std::endl;
2932 os <<
" logicalChannelIdentity: " << (int)it2->logicalChannelIdentity << std::endl;
2933 os <<
" logicalChannelConfig: " << std::endl;
2934 os <<
" priority: " << (
int)it2->logicalChannelConfig.priority << std::endl;
2935 os <<
" prioritizedBitRateKbps: " << (int)it2->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
2936 os <<
" bucketSizeDurationMs: " << (
int)it2->logicalChannelConfig.bucketSizeDurationMs << std::endl;
2937 os <<
" logicalChannelGroup: " << (int)it2->logicalChannelConfig.logicalChannelGroup << std::endl;
2941 os <<
" drbToReleaseList: ";
2942 std::list<uint8_t>::iterator it3 = radioResourceConfigDedicated.
drbToReleaseList.begin ();
2945 os << (int)*it3 <<
", ";
2953 os <<
" physicalConfigDedicated: " << std::endl;
2958 os <<
" soundingRsUlConfigDedicated: " << std::endl;
2975 std::bitset<0> bitset0;
2978 std::bitset<3> sysInfoBlkT1Opts;
2982 std::bitset<1> cellAccessRelatedInfoOpts;
2986 int numPlmnIdentityInfoElements;
2988 for (
int i = 0; i < numPlmnIdentityInfoElements; i++)
2997 std::bitset<16> trackingAreaCode;
3001 std::bitset<28> cellIdentity;
3014 if (cellAccessRelatedInfoOpts[0])
3017 std::bitset<27> csgIdentity;
3023 std::bitset<1> qRxLevMinOffsetPresent;
3026 if (qRxLevMinOffsetPresent[0])
3032 if (sysInfoBlkT1Opts[2])
3042 int numSchedulingInfo;
3044 for (
int i = 0; i < numSchedulingInfo; i++)
3050 for (
int j = 0; j < numSibType; j++)
3056 if (sysInfoBlkT1Opts[1])
3068 if (sysInfoBlkT1Opts[0])
3079 std::bitset<0> bitset0;
3082 std::bitset<2> sysInfoBlkT2Opts;
3084 if (sysInfoBlkT2Opts[1])
3103 std::bitset<2> freqInfoOpts;
3105 if (freqInfoOpts[1])
3111 if (freqInfoOpts[0])
3121 if (sysInfoBlkT2Opts[0])
3137 std::bitset<0> bitset0;
3140 std::bitset<9> rrCfgCommOptions;
3144 if (rrCfgCommOptions[8])
3150 std::bitset<1> prachConfigInfoPresent;
3157 if (prachConfigInfoPresent[0])
3163 if (rrCfgCommOptions[7])
3204 if (rrCfgCommOptions[6])
3210 if (rrCfgCommOptions[5])
3216 if (rrCfgCommOptions[4])
3222 if (rrCfgCommOptions[3])
3228 if (rrCfgCommOptions[2])
3234 if (rrCfgCommOptions[1])
3240 if (rrCfgCommOptions[0])
3254 std::bitset<0> bitset0;
3260 std::bitset<1> preamblesGroupAConfigPresent;
3319 if (preamblesGroupAConfigPresent[0])
3432 std::bitset<0> bitset0;
3450 std::bitset<1> prachConfigInfoPresent;
3455 if (prachConfigInfoPresent[0])
3543 std::bitset<4> measResultOptionalPresent;
3566 int measResultNeighCellsChoice;
3571 if (measResultNeighCellsChoice == 0)
3577 for (
int i = 0; i < numElems; i++)
3581 std::bitset<1> isCgiInfoPresent;
3588 measResultEutra.
haveCgiInfo = isCgiInfoPresent[0];
3589 if (isCgiInfoPresent[0])
3591 std::bitset<1> havePlmnIdentityList;
3601 std::bitset<28> cellId;
3606 std::bitset<16> trArCo;
3611 if (havePlmnIdentityList[0])
3616 for (
int j = 0; j < numPlmnElems; j++)
3626 std::bitset<2> measResultOpts;
3630 if (measResultOpts[1])
3638 if (measResultOpts[0])
3649 if (measResultNeighCellsChoice == 1)
3655 if (measResultNeighCellsChoice == 2)
3660 if (measResultNeighCellsChoice == 3)
3671 for (
int i = 0; i < numElems; i++)
3678 std::bitset<2> measResultScellPresent;
3685 std::bitset<2> measResultOpts;
3689 if (measResultOpts[1])
3697 if (measResultOpts[0])
3719 std::bitset<1> isMccPresent;
3722 if (isMccPresent[0])
3733 for (
int j = mncDigits - 1; j >= 0; j--)
3736 mnc +=
n * pow (10,j);
3749 std::bitset<0> bitset0;
3750 std::bitset<2> bitset2;
3751 std::bitset<11> bitset11;
3760 int measObjectToRemoveListElems;
3763 for (
int i = 0; i < measObjectToRemoveListElems; i++)
3773 int measObjectToAddModListElems;
3776 for (
int i = 0; i < measObjectToAddModListElems; i++)
3785 int measObjectChoice;
3788 switch (measObjectChoice)
3808 std::bitset<5> measObjectEutraOpts;
3829 if (measObjectEutraOpts[4])
3835 for (
int i = 0; i < numElems; i++)
3842 if (measObjectEutraOpts[3])
3848 for (
int i = 0; i < numElems; i++)
3869 if (measObjectEutraOpts[2])
3875 for (
int i = 0; i < numElems; i++)
3883 if (measObjectEutraOpts[1])
3889 for (
int i = 0; i < numElems; i++)
3898 std::bitset<1> isRangePresent;
3966 if (measObjectEutraOpts[0])
3980 int reportConfigToRemoveListElems;
3983 for (
int i = 0; i < reportConfigToRemoveListElems; i++)
3993 int reportConfigToAddModListElems;
3996 for (
int i = 0; i < reportConfigToAddModListElems; i++)
4005 int reportConfigChoice;
4008 if (reportConfigChoice == 0)
4014 int triggerTypeChoice;
4017 if (triggerTypeChoice == 0)
4027 switch (eventIdChoice)
4121 if (triggerTypeChoice == 1)
4248 if (reportConfigChoice == 1)
4261 int measIdToRemoveListElems;
4264 for (
int i = 0; i < measIdToRemoveListElems; i++)
4274 int measIdToAddModListElems;
4277 for (
int i = 0; i < measIdToAddModListElems; i++)
4300 std::bitset<4> quantityConfigOpts;
4303 if (quantityConfigOpts[3])
4416 if (quantityConfigOpts[2])
4421 if (quantityConfigOpts[1])
4426 if (quantityConfigOpts[0])
4437 int measGapConfigChoice;
4439 switch (measGapConfigChoice)
4450 int gapOffsetChoice;
4452 switch (gapOffsetChoice)
4486 int speedStateParsChoice;
4488 switch (speedStateParsChoice)
4566 m_mmec = std::bitset<8> (0ul);
4567 m_mTmsi = std::bitset<32> (0ul);
4569 m_spare = std::bitset<1> (0ul);
4580 static TypeId tid =
TypeId (
"ns3::RrcConnectionRequestHeader")
4582 .SetGroupName(
"Lte")
4590 os <<
"MMEC:" <<
m_mmec << std::endl;
4591 os <<
"MTMSI:" <<
m_mTmsi << std::endl;
4593 os <<
"Spare: " <<
m_spare << std::endl;
4642 std::bitset<1> dummy;
4643 std::bitset<0> optionalOrDefaultMask;
4721 os <<
"radioResourceConfigDedicated:" << std::endl;
4770 std::bitset<0> bitset0;
4771 std::bitset<1> bitset1;
4772 std::bitset<2> bitset2;
4786 int criticalExtensionChoice;
4788 if (criticalExtensionChoice == 1)
4793 else if (criticalExtensionChoice == 0)
4856 std::list<LteRrcSap::SrbToAddMod>
4862 std::list<LteRrcSap::DrbToAddMod>
4928 std::bitset<0> bitset0;
5031 std::bitset<0> bitset0;
5117 std::bitset<6> options;
5136 std::bitset<4> mobCtrlIntoOptional;
5139 mobCtrlIntoOptional.set (1,0);
5191 std::bitset<2> noncriticalExtension_v890;
5192 noncriticalExtension_v890.set (1,0);
5199 std::bitset<3> noncriticalExtension_v920;
5200 noncriticalExtension_v920.set (1,0);
5201 noncriticalExtension_v920.set (1,0);
5216 std::bitset<0> bitset0;
5245 else if (c1Chosen == 0)
5248 std::bitset<6> rrcConnRecOpts;
5261 std::bitset<4> mobCtrlOpts;
5272 std::bitset<1> ulCarrierFreqPresent;
5278 if (ulCarrierFreqPresent[0])
5289 std::bitset<1> ulBandwidthPresent;
5295 if (ulBandwidthPresent[0])
5312 std::bitset<16> cRnti;
5331 if (rrcConnRecOpts[3])
5344 if (rrcConnRecOpts[1])
5371 os <<
" measObjectToRemoveList: ";
5373 std::list<uint8_t>::iterator it = auxList.begin ();
5374 for (; it != auxList.end (); it++)
5376 os << (int) *it <<
", ";
5382 os <<
" reportConfigToRemoveList: ";
5384 std::list<uint8_t>::iterator it = auxList.begin ();
5385 for (; it != auxList.end (); it++)
5387 os << (int) *it <<
", ";
5393 os <<
" measIdToRemoveList: ";
5395 std::list<uint8_t>::iterator it = auxList.begin ();
5396 for (; it != auxList.end (); it++)
5398 os << (int) *it <<
", ";
5405 os <<
" measObjectToAddMod: " << std::endl;
5407 std::list<LteRrcSap::MeasObjectToAddMod>::iterator it = auxList.begin ();
5408 for (; it != auxList.end (); it++)
5410 os <<
" measObjectId: " << (int)it->measObjectId << std::endl;
5411 os <<
" carrierFreq: " << (
int)it->measObjectEutra.carrierFreq << std::endl;
5412 os <<
" allowedMeasBandwidth: " << (int)it->measObjectEutra.allowedMeasBandwidth << std::endl;
5413 os <<
" presenceAntennaPort1: " << it->measObjectEutra.presenceAntennaPort1 << std::endl;
5414 os <<
" neighCellConfig: " << (
int) it->measObjectEutra.neighCellConfig << std::endl;
5415 os <<
" offsetFreq: " << (int)it->measObjectEutra.offsetFreq << std::endl;
5418 if (!it->measObjectEutra.cellsToRemoveList.empty ())
5420 os <<
" cellsToRemoveList: ";
5421 std::list<uint8_t> auxList = it->measObjectEutra.cellsToRemoveList;
5422 std::list<uint8_t>::iterator it = auxList.begin ();
5423 for (; it != auxList.end (); it++)
5425 os << (int) *it <<
", ";
5430 if (!it->measObjectEutra.blackCellsToRemoveList.empty ())
5432 os <<
" blackCellsToRemoveList: ";
5433 std::list<uint8_t> auxList = it->measObjectEutra.blackCellsToRemoveList;
5434 std::list<uint8_t>::iterator it = auxList.begin ();
5435 for (; it != auxList.end (); it++)
5437 os << (int) *it <<
", ";
5442 if (!it->measObjectEutra.cellsToAddModList.empty ())
5444 os <<
" cellsToAddModList: " << std::endl;
5445 std::list<LteRrcSap::CellsToAddMod> auxList = it->measObjectEutra.cellsToAddModList;
5446 std::list<LteRrcSap::CellsToAddMod>::iterator it = auxList.begin ();
5447 for (; it != auxList.end (); it++)
5449 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5450 os <<
" physCellId: " << (
int)it->physCellId << std::endl;
5451 os <<
" cellIndividualOffset: " << (int)it->cellIndividualOffset << std::endl;
5452 os <<
" ------ " << std::endl;
5456 if (!it->measObjectEutra.blackCellsToAddModList.empty ())
5458 os <<
" blackCellsToAddModList: " << std::endl;
5459 std::list<LteRrcSap::BlackCellsToAddMod> auxList = it->measObjectEutra.blackCellsToAddModList;
5460 std::list<LteRrcSap::BlackCellsToAddMod>::iterator it = auxList.begin ();
5461 for (; it != auxList.end (); it++)
5463 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5464 os <<
" physCellIdRange.start: " << (
int)it->physCellIdRange.start << std::endl;
5465 os <<
" physCellIdRange.haveRange: " << it->physCellIdRange.haveRange << std::endl;
5466 os <<
" physCellIdRange.range: " << (int)it->physCellIdRange.range << std::endl;
5467 os <<
" ------ " << std::endl;
5471 os <<
" haveCellForWhichToReportCGI: " << it->measObjectEutra.haveCellForWhichToReportCGI << std::endl;
5472 os <<
" cellForWhichToReportCGI: " << (int)it->measObjectEutra.cellForWhichToReportCGI << std::endl;
5473 os <<
" ------------- " << std::endl;
5480 os <<
" reportConfigToAddModList: " << std::endl;
5482 std::list<LteRrcSap::ReportConfigToAddMod>::iterator it = auxList.begin ();
5483 for (; it != auxList.end (); it++)
5485 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5486 os <<
" reportConfigEutra.triggerType " << (
int)it->reportConfigEutra.triggerType << std::endl;
5489 os <<
" reportConfigEutra.eventId " << (int)it->reportConfigEutra.eventId << std::endl;
5492 os <<
" reportConfigEutra.reportOnLeave " << (int)it->reportConfigEutra.reportOnLeave << std::endl;
5493 os <<
" reportConfigEutra.a3Offset " << (
int)it->reportConfigEutra.a3Offset << std::endl;
5497 os <<
" reportConfigEutra.threshold1.choice " << (int)it->reportConfigEutra.threshold1.choice << std::endl;
5498 os <<
" reportConfigEutra.threshold1.range " << (
int)it->reportConfigEutra.threshold1.range << std::endl;
5501 os <<
" reportConfigEutra.threshold2.choice " << (int)it->reportConfigEutra.threshold2.choice << std::endl;
5502 os <<
" reportConfigEutra.threshold2.range " << (
int)it->reportConfigEutra.threshold2.range << std::endl;
5505 os <<
" reportConfigEutra.hysteresis " << (int)it->reportConfigEutra.hysteresis << std::endl;
5506 os <<
" reportConfigEutra.timeToTrigger " << (
int)it->reportConfigEutra.timeToTrigger << std::endl;
5510 os <<
" reportConfigEutra.purpose " << (int)it->reportConfigEutra.purpose << std::endl;
5512 os <<
" reportConfigEutra.triggerQuantity " << (int)it->reportConfigEutra.triggerQuantity << std::endl;
5513 os <<
" reportConfigEutra.reportQuantity " << (
int)it->reportConfigEutra.reportQuantity << std::endl;
5514 os <<
" reportConfigEutra.maxReportCells " << (int)it->reportConfigEutra.maxReportCells << std::endl;
5515 os <<
" reportConfigEutra.reportInterval " << (
int)it->reportConfigEutra.reportInterval << std::endl;
5516 os <<
" reportConfigEutra.reportAmount " << (int)it->reportConfigEutra.reportAmount << std::endl;
5522 os <<
" measIdToAddModList: " << std::endl;
5524 std::list<LteRrcSap::MeasIdToAddMod>::iterator it = auxList.begin ();
5525 for (; it != auxList.end (); it++)
5527 os <<
" measId: " << (int)it->measId << std::endl;
5528 os <<
" measObjectId: " << (
int)it->measObjectId << std::endl;
5529 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5530 os <<
" ------ " << std::endl;
5693 std::list<LteRrcSap::SrbToAddMod>
5699 std::list<LteRrcSap::DrbToAddMod>
5743 std::bitset<4> handoverPrepInfoOpts;
5744 handoverPrepInfoOpts.set (3,1);
5745 handoverPrepInfoOpts.set (2,0);
5746 handoverPrepInfoOpts.set (1,0);
5747 handoverPrepInfoOpts.set (0,0);
5801 std::bitset<0> bitset0;
5809 int criticalExtensionsChosen;
5812 if (criticalExtensionsChosen == 1)
5817 else if (criticalExtensionsChosen == 0)
5826 else if (c1Chosen == 0)
5829 std::bitset<4> handoverPrepInfoOpts;
5834 for (
int i = 0; i <
n; i++)
5840 if (handoverPrepInfoOpts[3])
5857 std::bitset<16> cRnti;
5872 std::bitset<8> systemFrameNumber;
5876 std::bitset<10> spare;
5893 if (handoverPrepInfoOpts[2])
5898 if (handoverPrepInfoOpts[1])
5903 if (handoverPrepInfoOpts[0])
6014 std::bitset<0> bitset0;
6039 std::bitset<16> cRnti;
6049 std::bitset<16> shortMacI;
6071 std::bitset<2> spare;
6163 std::bitset<0> bitset0;
6177 int criticalExtensionsChoice;
6179 if (criticalExtensionsChoice == 1)
6184 else if (criticalExtensionsChoice == 0)
6197 std::bitset<1> nonCriticalExtensionPresent;
6215 os <<
"RadioResourceConfigDedicated: " << std::endl;
6283 std::bitset<0> bitset0;
6297 int criticalExtensionsChoice;
6299 if (criticalExtensionsChoice == 1)
6304 else if (criticalExtensionsChoice == 0)
6307 std::bitset<1> opts;
6382 std::bitset<0> bitset0;
6391 int criticalExtensionsChoice;
6393 if (criticalExtensionsChoice == 1)
6398 else if (criticalExtensionsChoice == 0)
6401 std::bitset<1> opts;
6476 std::bitset<0> bitset0;
6490 int criticalExtensionsChoice;
6492 if (criticalExtensionsChoice == 1)
6497 else if (criticalExtensionsChoice == 0)
6506 std::bitset<3> opts;
6598 std::bitset<0> bitset0;
6608 int criticalExtensionsChoice;
6610 if (criticalExtensionsChoice == 1)
6615 else if (criticalExtensionsChoice == 0)
6625 else if (c1Choice == 0)
6628 std::bitset<1> opts;
6708 std::bitset<0> bitset0;
6714 int criticalExtensionsChoice;
6717 if (criticalExtensionsChoice == 1)
6722 else if (criticalExtensionsChoice == 0)
6735 std::bitset<1> isNonCriticalExtensionPresent;
6741 if (isNonCriticalExtensionPresent[0])
6764 std::list<LteRrcSap::MeasResultEutra>::iterator it = measResultListEutra.begin ();
6765 for (; it != measResultListEutra.end (); it++)
6767 os <<
" physCellId =" << (int) it->physCellId << std::endl;
6768 os <<
" haveCgiInfo =" << it->haveCgiInfo << std::endl;
6769 if (it->haveCgiInfo)
6771 os <<
" plmnIdentity = " << (int) it->cgiInfo.plmnIdentity << std::endl;
6772 os <<
" cellIdentity = " << (
int) it->cgiInfo.cellIdentity << std::endl;
6773 os <<
" trackingAreaCode = " << (int) it->cgiInfo.trackingAreaCode << std::endl;
6774 os <<
" havePlmnIdentityList = " << !it->cgiInfo.plmnIdentityList.empty () << std::endl;
6775 if (!it->cgiInfo.plmnIdentityList.empty ())
6777 for (std::list<uint32_t>::iterator it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.end (); it2++)
6779 os <<
" plmnId : " << *it2 << std::endl;
6784 os <<
" haveRsrpResult =" << it->haveRsrpResult << std::endl;
6785 if (it->haveRsrpResult)
6787 os <<
" rsrpResult =" << (int) it->rsrpResult << std::endl;
6790 os <<
" haveRsrqResult =" << it->haveRsrqResult << std::endl;
6791 if (it->haveRsrqResult)
6793 os <<
" rsrqResult =" << (int) it->rsrqResult << std::endl;
6834 std::cout <<
"UL DCCH MSG TYPE: " <<
m_messageType << std::endl;
6846 std::bitset<0> bitset0;
6895 std::cout <<
"DL DCCH MSG TYPE: " <<
m_messageType << std::endl;
6907 std::bitset<0> bitset0;
6956 std::cout <<
"UL CCCH MSG TYPE: " <<
m_messageType << std::endl;
6968 std::bitset<0> bitset0;
7017 std::cout <<
"DL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7029 std::bitset<0> bitset0;
iterator in a Buffer instance
automatically resized byte buffer
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
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
This function prints the object, for debugging purposes.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
void SerializeDlCcchMessage(int msgType) const
Serialize DL CCCH message function.
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
void SerializeDlDcchMessage(int msgType) const
Serialize DL DCCH message function.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
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.
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
Buffer::Iterator DeserializeUlDcchMessage(Buffer::Iterator bIterator)
Deserialize UL DCCH message function.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
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?
enum ns3::LteRrcSap::MeasGapConfig::action type
action type
enum ns3::LteRrcSap::MeasGapConfig::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
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?
MeasResultScell structure.
uint8_t rsrpResult
the RSRP result
bool haveRsrqResult
have RSRQ result?
bool haveRsrpResult
have RSRP result?
uint8_t rsrqResult
the RSRQ result
uint16_t servFreqId
service frequency ID
bool haveMeasurementResultsServingSCells
have measure results serving Scells
std::list< MeasResultScell > measResultScell
measure results Scells
bool haveMeasurementResultsNeighCell
always false since not implemented
bool haveMeasResultNeighCells
have measure result neighbor cells
std::list< MeasResultEutra > measResultListEutra
measure result list eutra
bool haveScellsMeas
has SCells measure
uint8_t rsrpResult
RSRP result.
uint8_t rsrqResult
RSRQ result.
MeasResultServFreqList measScellResultList
measure SCell result list
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< SCellToAddMod > sCellsToAddModList
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.
enum ns3::LteRrcSap::ReportConfigEutra::report purpose
purpose
@ 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. An integer between -30 and 30. The actual value is (value * 0....
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
enum ns3::LteRrcSap::RlcConfig::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. 6.2.2 pag. 147 (also known as ETSI TS 136 331 v.11....
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
uint32_t sCellIndex
SCell index.
bool haveRadioResourceConfigDedicatedSCell
have radio resource config dedicated SCell?
CellIdentification cellIdentification
cell identification
RadioResourceConfigDedicatedSCell radioResourceConfigDedicateSCell
radio resource config dedicated SCell
RadioResourceConfigCommonSCell radioResourceConfigCommonSCell
radio resource config common SCell
enum ns3::LteRrcSap::SoundingRsUlConfigDedicated::action type
action type
uint16_t srsConfigIndex
SRS config index.
uint16_t srsBandwidth
SRS bandwidth.
SpeedStateScaleFactors timeToTriggerSf
time to trigger scale factors
MobilityStateParameters mobilityStateParameters
mobility state parameters
enum ns3::LteRrcSap::SpeedStatePars::action type
action type
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