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
82 std::list<LteRrcSap::DrbToAddMod>::iterator it = drbToAddModList.begin ();
83 for (; it != drbToAddModList.end (); it++)
87 std::bitset<5> drbToAddModListOptionalFieldsPresent = std::bitset<5> ();
88 drbToAddModListOptionalFieldsPresent.set (4,1);
89 drbToAddModListOptionalFieldsPresent.set (3,0);
90 drbToAddModListOptionalFieldsPresent.set (2,1);
91 drbToAddModListOptionalFieldsPresent.set (1,1);
92 drbToAddModListOptionalFieldsPresent.set (0,1);
101 switch (it->rlcConfig.choice)
170 std::list<LteRrcSap::SrbToAddMod>::iterator it = srbToAddModList.begin ();
171 for (; it != srbToAddModList.end (); it++)
175 std::bitset<2> srbToAddModListOptionalFieldsPresent = std::bitset<2> ();
176 srbToAddModListOptionalFieldsPresent.set (1,0);
177 srbToAddModListOptionalFieldsPresent.set (0,1);
207 int prioritizedBitRate;
211 prioritizedBitRate = 0;
214 prioritizedBitRate = 1;
217 prioritizedBitRate = 2;
220 prioritizedBitRate = 3;
223 prioritizedBitRate = 4;
226 prioritizedBitRate = 5;
229 prioritizedBitRate = 6;
232 prioritizedBitRate = 7;
237 int bucketSizeDuration;
241 bucketSizeDuration = 0;
244 bucketSizeDuration = 1;
247 bucketSizeDuration = 2;
250 bucketSizeDuration = 3;
253 bucketSizeDuration = 4;
256 bucketSizeDuration = 5;
259 bucketSizeDuration = 5;
271 std::bitset<10> optionalFieldsPhysicalConfigDedicated;
273 optionalFieldsPhysicalConfigDedicated.set (8,0);
274 optionalFieldsPhysicalConfigDedicated.set (7,0);
275 optionalFieldsPhysicalConfigDedicated.set (6,0);
276 optionalFieldsPhysicalConfigDedicated.set (5,0);
277 optionalFieldsPhysicalConfigDedicated.set (4,0);
278 optionalFieldsPhysicalConfigDedicated.set (3,0);
281 optionalFieldsPhysicalConfigDedicated.set (0,0);
367 bool isSrbToAddModListPresent = !radioResourceConfigDedicated.
srbToAddModList.empty ();
368 bool isDrbToAddModListPresent = !radioResourceConfigDedicated.
drbToAddModList.empty ();
369 bool isDrbToReleaseListPresent = !radioResourceConfigDedicated.
drbToReleaseList.empty ();
372 std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
373 optionalFieldsPresent.set (5,isSrbToAddModListPresent);
374 optionalFieldsPresent.set (4,isDrbToAddModListPresent);
375 optionalFieldsPresent.set (3,isDrbToReleaseListPresent);
376 optionalFieldsPresent.set (2,0);
377 optionalFieldsPresent.set (1,0);
382 if (isSrbToAddModListPresent)
388 if (isDrbToAddModListPresent)
394 if (isDrbToReleaseListPresent)
397 std::list<uint8_t>::iterator it = radioResourceConfigDedicated.
drbToReleaseList.begin ();
415 std::bitset<3> sysInfoBlk1Opts;
416 sysInfoBlk1Opts.set (2,0);
417 sysInfoBlk1Opts.set (1,0);
418 sysInfoBlk1Opts.set (0,0);
474 std::bitset<9> rrCfgCmmOpts;
475 rrCfgCmmOpts.set (8,1);
476 rrCfgCmmOpts.set (7,0);
477 rrCfgCmmOpts.set (6,0);
478 rrCfgCmmOpts.set (5,0);
479 rrCfgCmmOpts.set (4,0);
480 rrCfgCmmOpts.set (3,0);
481 rrCfgCmmOpts.set (2,0);
482 rrCfgCmmOpts.set (1,0);
483 rrCfgCmmOpts.set (0,0);
638 std::bitset<4> measResultOptional;
640 measResultOptional.set (2,
false);
641 measResultOptional.set (1,
false);
666 std::list<LteRrcSap::MeasResultEutra>::iterator it;
688 if (!it->cgiInfo.plmnIdentityList.empty ())
691 std::list<uint32_t>::iterator it2;
692 for (it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.end (); it2++)
700 std::bitset<2> measResultFieldsPresent;
701 measResultFieldsPresent[1] = it->haveRsrpResult;
702 measResultFieldsPresent[0] = it->haveRsrqResult;
705 if (it->haveRsrpResult)
710 if (it->haveRsrqResult)
721 std::list<LteRrcSap::MeasResultScell>::iterator it;
727 std::bitset<2> measResultScellPresent;
733 std::bitset<2> measResultScellFieldsPresent;
734 measResultScellFieldsPresent[1] = it->haveRsrpResult;
735 measResultScellFieldsPresent[0] = it->haveRsrqResult;
738 if (it->haveRsrpResult)
743 if (it->haveRsrqResult)
759 int nDig = (plmnId > 99) ? 3 : 2;
762 for (
int i = nDig - 1; i >= 0; i--)
764 int n = floor (plmnId / pow (10,i));
766 plmnId -= n * pow (10,i);
920 switch (qOffsetRange)
1023 switch (thresholdEutra.
choice)
1041 std::bitset<11> measConfigOptional;
1051 measConfigOptional.set (1,
false );
1074 std::bitset<5> measObjOpts;
1075 measObjOpts.set (4,!it->measObjectEutra.cellsToRemoveList.empty () );
1076 measObjOpts.set (3,!it->measObjectEutra.cellsToAddModList.empty () );
1077 measObjOpts.set (2,!it->measObjectEutra.blackCellsToRemoveList.empty () );
1078 measObjOpts.set (1,!it->measObjectEutra.blackCellsToAddModList.empty () );
1079 measObjOpts.set (0,it->measObjectEutra.haveCellForWhichToReportCGI);
1086 switch (it->measObjectEutra.allowedMeasBandwidth)
1114 if (!it->measObjectEutra.cellsToRemoveList.empty ())
1117 for (std::list<uint8_t>::iterator it2 = it->measObjectEutra.cellsToRemoveList.begin (); it2 != it->measObjectEutra.cellsToRemoveList.end (); it2++)
1123 if (!it->measObjectEutra.cellsToAddModList.empty ())
1126 for (std::list<LteRrcSap::CellsToAddMod>::iterator it2 = it->measObjectEutra.cellsToAddModList.begin (); it2 != it->measObjectEutra.cellsToAddModList.end (); it2++)
1141 if (!it->measObjectEutra.blackCellsToRemoveList.empty () )
1144 for (std::list<uint8_t>::iterator it2 = it->measObjectEutra.blackCellsToRemoveList.begin (); it2 != it->measObjectEutra.blackCellsToRemoveList.end (); it2++)
1150 if (!it->measObjectEutra.blackCellsToAddModList.empty () )
1153 for (std::list<LteRrcSap::BlackCellsToAddMod>::iterator it2 = it->measObjectEutra.blackCellsToAddModList.begin (); it2 != it->measObjectEutra.blackCellsToAddModList.end (); it2++)
1160 std::bitset<1> rangePresent = std::bitset<1> (it2->physCellIdRange.haveRange);
1163 if (it2->physCellIdRange.haveRange)
1165 switch (it2->physCellIdRange.range)
1217 if (it->measObjectEutra.haveCellForWhichToReportCGI)
1245 switch (it->reportConfigEutra.triggerType)
1250 switch (it->reportConfigEutra.purpose)
1264 switch (it->reportConfigEutra.eventId)
1297 switch (it->reportConfigEutra.timeToTrigger)
1374 switch (it->reportConfigEutra.reportInterval)
1427 switch (it->reportConfigEutra.reportAmount)
1480 std::bitset<4> quantityConfigOpts (0);
1481 quantityConfigOpts.set (3,1);
1719 std::bitset<3> noncriticalExtension_v1020;
1720 noncriticalExtension_v1020.set (2,0);
1721 noncriticalExtension_v1020.set (1,1);
1722 noncriticalExtension_v1020.set (0,0);
1729 std::bitset<4> sCellToAddMod_r10;
1730 sCellToAddMod_r10.set (3,1);
1731 sCellToAddMod_r10.set (2,1);
1732 sCellToAddMod_r10.set (1,1);
1733 sCellToAddMod_r10.set (0,it->haveRadioResourceConfigDedicatedSCell);
1738 std::bitset<2> cellIdentification_r10;
1739 cellIdentification_r10.set(1,1);
1740 cellIdentification_r10.set(0,1);
1749 if (it->haveRadioResourceConfigDedicatedSCell)
1767 std::bitset<2> radioResourceConfigCommonSCell_r10;
1775 std::bitset<5> nonUlConfiguration_r10;
1776 nonUlConfiguration_r10.set (4,1);
1777 nonUlConfiguration_r10.set (3,1);
1778 nonUlConfiguration_r10.set (2,0);
1779 nonUlConfiguration_r10.set (1,1);
1780 nonUlConfiguration_r10.set (0,0);
1785 std::bitset<1> antennaInfoCommon_r10;
1786 antennaInfoCommon_r10.set (0,1);
1790 std::bitset<2> pdschConfigCommon_r10;
1791 pdschConfigCommon_r10.set (1,1);
1792 pdschConfigCommon_r10.set (0,1);
1803 std::bitset<7> UlConfiguration_r10;
1804 UlConfiguration_r10.set (6,1);
1805 UlConfiguration_r10.set (5,0);
1806 UlConfiguration_r10.set (4,1);
1807 UlConfiguration_r10.set (3,0);
1808 UlConfiguration_r10.set (2,0);
1809 UlConfiguration_r10.set (1,1);
1810 UlConfiguration_r10.set (0,0);
1814 std::bitset<3> FreqInfo_r10;
1815 FreqInfo_r10.set (2,1);
1816 FreqInfo_r10.set (1,1);
1817 FreqInfo_r10.set (0,0);
1824 std::bitset<2> UlPowerControlCommonSCell_r10;
1825 UlPowerControlCommonSCell_r10.set (1,0);
1826 UlPowerControlCommonSCell_r10.set (0,1);
1835 std::bitset<1> prachConfigSCell_r10;
1836 prachConfigSCell_r10.set(0,1);
1847 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
1848 RadioResourceConfigDedicatedSCell_r10.set (0,1);
1858 std::bitset<2> pcdscOpt;
1866 std::bitset<4> nulOpt;
1912 std::bitset<7> ulOpt;
1994 int thresholdEutraChoice, range;
1997 switch (thresholdEutraChoice)
2002 thresholdEutra->
range = range;
2008 thresholdEutra->
range = range;
2022 *qOffsetRange = -24;
2025 *qOffsetRange = -22;
2028 *qOffsetRange = -20;
2031 *qOffsetRange = -18;
2034 *qOffsetRange = -16;
2037 *qOffsetRange = -14;
2040 *qOffsetRange = -12;
2043 *qOffsetRange = -10;
2122 std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
2125 if (optionalFieldsPresent[5])
2131 if (optionalFieldsPresent[4])
2137 if (optionalFieldsPresent[3])
2143 for (
int i = 0; i < n; i++)
2150 if (optionalFieldsPresent[2])
2156 if (optionalFieldsPresent[1])
2163 if (optionalFieldsPresent[0])
2178 srbToAddModList->clear ();
2181 for (
int i = 0; i < numElems; i++)
2186 std::bitset<2> optionalFields;
2194 if (optionalFields[1])
2200 if (optionalFields[0])
2218 srbToAddModList->insert (srbToAddModList->end (),srbToAddMod);
2231 drbToAddModList->clear ();
2233 for (
int i = 0; i < n; i++)
2237 std::bitset<5> optionalFields;
2240 if (optionalFields[4])
2250 if (optionalFields[3])
2256 if (optionalFields[2])
2263 std::bitset<0> bitset0;
2315 if (optionalFields[1])
2321 if (optionalFields[0])
2326 drbToAddModList->insert (drbToAddModList->end (),drbToAddMod);
2338 std::bitset<1> bitset1;
2348 logicalChannelConfig->
priority = n;
2352 uint16_t prioritizedBitRateKbps;
2357 prioritizedBitRateKbps = 0;
2360 prioritizedBitRateKbps = 8;
2363 prioritizedBitRateKbps = 16;
2366 prioritizedBitRateKbps = 32;
2369 prioritizedBitRateKbps = 64;
2372 prioritizedBitRateKbps = 128;
2375 prioritizedBitRateKbps = 256;
2378 prioritizedBitRateKbps = 10000;
2381 prioritizedBitRateKbps = 10000;
2387 uint16_t bucketSizeDurationMs;
2391 bucketSizeDurationMs = 50;
2394 bucketSizeDurationMs = 100;
2397 bucketSizeDurationMs = 150;
2400 bucketSizeDurationMs = 300;
2403 bucketSizeDurationMs = 500;
2406 bucketSizeDurationMs = 1000;
2409 bucketSizeDurationMs = 1000;
2426 std::bitset<10> optionalFieldPresent;
2430 if (optionalFieldPresent[9])
2433 std::bitset<0> bitset0;
2445 if (optionalFieldPresent[8])
2450 if (optionalFieldPresent[7])
2455 if (optionalFieldPresent[6])
2460 if (optionalFieldPresent[5])
2465 if (optionalFieldPresent[4])
2470 if (optionalFieldPresent[3])
2476 if (optionalFieldPresent[2])
2493 std::bitset<0> bitset0;
2524 if (optionalFieldPresent[1])
2535 std::bitset<1> codebookSubsetRestrictionPresent;
2542 if (codebookSubsetRestrictionPresent[0])
2548 int txantennaselchosen;
2550 if (txantennaselchosen == 0)
2555 else if (txantennaselchosen == 1)
2562 if (optionalFieldPresent[0])
2574 NS_FATAL_ERROR (
"RrcAsn1Header Print() function must also specify LteRrcSap::RadioResourceConfigDedicated as a second argument");
2581 std::bitset<2> nonCriticalExtension_v890;
2584 if (nonCriticalExtension_v890[0])
2587 std::bitset<3> nonCriticalExtension_v920;
2589 if (nonCriticalExtension_v920[0])
2592 std::bitset<3> nonCriticalExtension_v1020;
2594 NS_ASSERT (!nonCriticalExtension_v1020[2]);
2595 NS_ASSERT (nonCriticalExtension_v1020[1]);
2596 NS_ASSERT (!nonCriticalExtension_v1020[0]);
2602 for (
int i = 0; i < numElems; i++)
2604 std::bitset<4> sCellToAddMod_r10;
2621 if (sCellToAddMod_r10[0])
2639 std::bitset<2> cellIdentification_r10;
2657 std::bitset<2> radioResourceConfigCommonSCell_r10;
2663 std::bitset<5> nonUlConfiguration_r10;
2669 std::bitset<1> antennaInfoCommon_r10;
2674 std::bitset<2> pdschConfigCommon_r10;
2683 std::bitset<7> UlConfiguration_r10;
2686 std::bitset<3> FreqInfo_r10;
2694 std::bitset<2> UlPowerControlCommonSCell_r10;
2699 std::bitset<1> prachConfigSCell_r10;
2712 std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
2723 std::bitset<2> pcdscOpt;
2729 std::bitset<4> nulOpt;
2747 std::bitset<1> codebookSubsetRestrictionPresent;
2754 if (codebookSubsetRestrictionPresent[0])
2761 int txantennaselchosen;
2763 if (txantennaselchosen == 0)
2768 else if (txantennaselchosen == 1)
2779 std::bitset<0> bitset0;
2794 std::bitset<7> ulOpt;
2815 std::bitset<1> codebookSubsetRestrictionPresent;
2822 if (codebookSubsetRestrictionPresent[0])
2829 int txantennaselchosen;
2831 if (txantennaselchosen == 0)
2836 else if (txantennaselchosen == 1)
2861 std::bitset<0> bitset0;
2900 os <<
" srbToAddModList: " << std::endl;
2901 std::list<LteRrcSap::SrbToAddMod>::iterator it = radioResourceConfigDedicated.
srbToAddModList.begin ();
2902 for (; it != radioResourceConfigDedicated.
srbToAddModList.end (); it++)
2904 os <<
" srbIdentity: " << (int)it->srbIdentity << std::endl;
2905 os <<
" logicalChannelConfig: " << std::endl;
2906 os <<
" priority: " << (
int)it->logicalChannelConfig.priority << std::endl;
2907 os <<
" prioritizedBitRateKbps: " << (int)it->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
2908 os <<
" bucketSizeDurationMs: " << (
int)it->logicalChannelConfig.bucketSizeDurationMs << std::endl;
2909 os <<
" logicalChannelGroup: " << (int)it->logicalChannelConfig.logicalChannelGroup << std::endl;
2913 os <<
" drbToAddModList: " << std::endl;
2914 std::list<LteRrcSap::DrbToAddMod>::iterator it2 = radioResourceConfigDedicated.
drbToAddModList.begin ();
2915 for (; it2 != radioResourceConfigDedicated.
drbToAddModList.end (); it2++)
2917 os <<
" epsBearerIdentity: " << (int)it2->epsBearerIdentity << std::endl;
2918 os <<
" drbIdentity: " << (
int)it2->drbIdentity << std::endl;
2919 os <<
" rlcConfig: " << it2->rlcConfig.choice << std::endl;
2920 os <<
" logicalChannelIdentity: " << (int)it2->logicalChannelIdentity << std::endl;
2921 os <<
" logicalChannelConfig: " << std::endl;
2922 os <<
" priority: " << (
int)it2->logicalChannelConfig.priority << std::endl;
2923 os <<
" prioritizedBitRateKbps: " << (int)it2->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
2924 os <<
" bucketSizeDurationMs: " << (
int)it2->logicalChannelConfig.bucketSizeDurationMs << std::endl;
2925 os <<
" logicalChannelGroup: " << (int)it2->logicalChannelConfig.logicalChannelGroup << std::endl;
2929 os <<
" drbToReleaseList: ";
2930 std::list<uint8_t>::iterator it3 = radioResourceConfigDedicated.
drbToReleaseList.begin ();
2933 os << (int)*it3 <<
", ";
2941 os <<
" physicalConfigDedicated: " << std::endl;
2946 os <<
" soundingRsUlConfigDedicated: " << std::endl;
2963 std::bitset<0> bitset0;
2966 std::bitset<3> sysInfoBlkT1Opts;
2970 std::bitset<1> cellAccessRelatedInfoOpts;
2974 int numPlmnIdentityInfoElements;
2976 for (
int i = 0; i < numPlmnIdentityInfoElements; i++)
2985 std::bitset<16> trackingAreaCode;
2989 std::bitset<28> cellIdentity;
3002 if (cellAccessRelatedInfoOpts[0])
3005 std::bitset<27> csgIdentity;
3011 std::bitset<1> qRxLevMinOffsetPresent;
3014 if (qRxLevMinOffsetPresent[0])
3020 if (sysInfoBlkT1Opts[2])
3030 int numSchedulingInfo;
3032 for (
int i = 0; i < numSchedulingInfo; i++)
3038 for (
int j = 0; j < numSibType; j++)
3044 if (sysInfoBlkT1Opts[1])
3056 if (sysInfoBlkT1Opts[0])
3067 std::bitset<0> bitset0;
3070 std::bitset<2> sysInfoBlkT2Opts;
3072 if (sysInfoBlkT2Opts[1])
3091 std::bitset<2> freqInfoOpts;
3093 if (freqInfoOpts[1])
3099 if (freqInfoOpts[0])
3131 if (sysInfoBlkT2Opts[0])
3147 std::bitset<0> bitset0;
3150 std::bitset<9> rrCfgCommOptions;
3154 if (rrCfgCommOptions[8])
3160 std::bitset<1> prachConfigInfoPresent;
3167 if (prachConfigInfoPresent[0])
3173 if (rrCfgCommOptions[7])
3214 if (rrCfgCommOptions[6])
3220 if (rrCfgCommOptions[5])
3226 if (rrCfgCommOptions[4])
3232 if (rrCfgCommOptions[3])
3238 if (rrCfgCommOptions[2])
3244 if (rrCfgCommOptions[1])
3250 if (rrCfgCommOptions[0])
3264 std::bitset<0> bitset0;
3270 std::bitset<1> preamblesGroupAConfigPresent;
3331 if (preamblesGroupAConfigPresent[0])
3424 std::bitset<0> bitset0;
3442 std::bitset<1> prachConfigInfoPresent;
3447 if (prachConfigInfoPresent[0])
3535 std::bitset<4> measResultOptionalPresent;
3558 int measResultNeighCellsChoice;
3563 if (measResultNeighCellsChoice == 0)
3569 for (
int i = 0; i < numElems; i++)
3573 std::bitset<1> isCgiInfoPresent;
3580 measResultEutra.
haveCgiInfo = isCgiInfoPresent[0];
3581 if (isCgiInfoPresent[0])
3583 std::bitset<1> havePlmnIdentityList;
3593 std::bitset<28> cellId;
3598 std::bitset<16> trArCo;
3603 if (havePlmnIdentityList[0])
3608 for (
int j = 0; j < numPlmnElems; j++)
3618 std::bitset<2> measResultOpts;
3622 if (measResultOpts[1])
3630 if (measResultOpts[0])
3641 if (measResultNeighCellsChoice == 1)
3647 if (measResultNeighCellsChoice == 2)
3652 if (measResultNeighCellsChoice == 3)
3663 for (
int i = 0; i < numElems; i++)
3670 std::bitset<2> measResultScellPresent;
3677 std::bitset<2> measResultOpts;
3681 if (measResultOpts[1])
3689 if (measResultOpts[0])
3711 std::bitset<1> isMccPresent;
3714 if (isMccPresent[0])
3725 for (
int j = mncDigits - 1; j >= 0; j--)
3728 mnc += n * pow (10,j);
3741 std::bitset<0> bitset0;
3742 std::bitset<2> bitset2;
3743 std::bitset<11> bitset11;
3752 int measObjectToRemoveListElems;
3755 for (
int i = 0; i < measObjectToRemoveListElems; i++)
3765 int measObjectToAddModListElems;
3768 for (
int i = 0; i < measObjectToAddModListElems; i++)
3777 int measObjectChoice;
3780 switch (measObjectChoice)
3800 std::bitset<5> measObjectEutraOpts;
3842 if (measObjectEutraOpts[4])
3848 for (
int i = 0; i < numElems; i++)
3855 if (measObjectEutraOpts[3])
3861 for (
int i = 0; i < numElems; i++)
3882 if (measObjectEutraOpts[2])
3888 for (
int i = 0; i < numElems; i++)
3896 if (measObjectEutraOpts[1])
3902 for (
int i = 0; i < numElems; i++)
3911 std::bitset<1> isRangePresent;
3979 if (measObjectEutraOpts[0])
3993 int reportConfigToRemoveListElems;
3996 for (
int i = 0; i < reportConfigToRemoveListElems; i++)
4006 int reportConfigToAddModListElems;
4009 for (
int i = 0; i < reportConfigToAddModListElems; i++)
4018 int reportConfigChoice;
4021 if (reportConfigChoice == 0)
4027 int triggerTypeChoice;
4030 if (triggerTypeChoice == 0)
4040 switch (eventIdChoice)
4134 if (triggerTypeChoice == 1)
4261 if (reportConfigChoice == 1)
4274 int measIdToRemoveListElems;
4277 for (
int i = 0; i < measIdToRemoveListElems; i++)
4287 int measIdToAddModListElems;
4290 for (
int i = 0; i < measIdToAddModListElems; i++)
4313 std::bitset<4> quantityConfigOpts;
4316 if (quantityConfigOpts[3])
4429 if (quantityConfigOpts[2])
4434 if (quantityConfigOpts[1])
4439 if (quantityConfigOpts[0])
4450 int measGapConfigChoice;
4452 switch (measGapConfigChoice)
4463 int gapOffsetChoice;
4465 switch (gapOffsetChoice)
4499 int speedStateParsChoice;
4501 switch (speedStateParsChoice)
4578 m_mmec = std::bitset<8> (0ul);
4579 m_mTmsi = std::bitset<32> (0ul);
4581 m_spare = std::bitset<1> (0ul);
4592 static TypeId tid =
TypeId (
"ns3::RrcConnectionRequestHeader")
4594 .SetGroupName(
"Lte")
4602 os <<
"MMEC:" <<
m_mmec << std::endl;
4603 os <<
"MTMSI:" <<
m_mTmsi << std::endl;
4605 os <<
"Spare: " <<
m_spare << std::endl;
4654 std::bitset<1> dummy;
4655 std::bitset<0> optionalOrDefaultMask;
4733 os <<
"radioResourceConfigDedicated:" << std::endl;
4782 std::bitset<0> bitset0;
4783 std::bitset<1> bitset1;
4784 std::bitset<2> bitset2;
4798 int criticalExtensionChoice;
4800 if (criticalExtensionChoice == 1)
4805 else if (criticalExtensionChoice == 0)
4868 std::list<LteRrcSap::SrbToAddMod>
4874 std::list<LteRrcSap::DrbToAddMod>
4940 std::bitset<0> bitset0;
5043 std::bitset<0> bitset0;
5129 std::bitset<6> options;
5148 std::bitset<4> mobCtrlIntoOptional;
5151 mobCtrlIntoOptional.set (1,0);
5247 std::bitset<2> noncriticalExtension_v890;
5248 noncriticalExtension_v890.set (1,0);
5255 std::bitset<3> noncriticalExtension_v920;
5256 noncriticalExtension_v920.set (1,0);
5257 noncriticalExtension_v920.set (1,0);
5272 std::bitset<0> bitset0;
5301 else if (c1Chosen == 0)
5304 std::bitset<6> rrcConnRecOpts;
5317 std::bitset<4> mobCtrlOpts;
5328 std::bitset<1> ulCarrierFreqPresent;
5334 if (ulCarrierFreqPresent[0])
5345 std::bitset<1> ulBandwidthPresent;
5374 if (ulBandwidthPresent[0])
5414 std::bitset<16> cRnti;
5433 if (rrcConnRecOpts[3])
5446 if (rrcConnRecOpts[1])
5473 os <<
" measObjectToRemoveList: ";
5475 std::list<uint8_t>::iterator it = auxList.begin ();
5476 for (; it != auxList.end (); it++)
5478 os << (int) *it <<
", ";
5484 os <<
" reportConfigToRemoveList: ";
5486 std::list<uint8_t>::iterator it = auxList.begin ();
5487 for (; it != auxList.end (); it++)
5489 os << (int) *it <<
", ";
5495 os <<
" measIdToRemoveList: ";
5497 std::list<uint8_t>::iterator it = auxList.begin ();
5498 for (; it != auxList.end (); it++)
5500 os << (int) *it <<
", ";
5507 os <<
" measObjectToAddMod: " << std::endl;
5509 std::list<LteRrcSap::MeasObjectToAddMod>::iterator it = auxList.begin ();
5510 for (; it != auxList.end (); it++)
5512 os <<
" measObjectId: " << (int)it->measObjectId << std::endl;
5513 os <<
" carrierFreq: " << (
int)it->measObjectEutra.carrierFreq << std::endl;
5514 os <<
" allowedMeasBandwidth: " << (int)it->measObjectEutra.allowedMeasBandwidth << std::endl;
5515 os <<
" presenceAntennaPort1: " << it->measObjectEutra.presenceAntennaPort1 << std::endl;
5516 os <<
" neighCellConfig: " << (
int) it->measObjectEutra.neighCellConfig << std::endl;
5517 os <<
" offsetFreq: " << (int)it->measObjectEutra.offsetFreq << std::endl;
5520 if (!it->measObjectEutra.cellsToRemoveList.empty ())
5522 os <<
" cellsToRemoveList: ";
5523 std::list<uint8_t> auxList = it->measObjectEutra.cellsToRemoveList;
5524 std::list<uint8_t>::iterator it = auxList.begin ();
5525 for (; it != auxList.end (); it++)
5527 os << (int) *it <<
", ";
5532 if (!it->measObjectEutra.blackCellsToRemoveList.empty ())
5534 os <<
" blackCellsToRemoveList: ";
5535 std::list<uint8_t> auxList = it->measObjectEutra.blackCellsToRemoveList;
5536 std::list<uint8_t>::iterator it = auxList.begin ();
5537 for (; it != auxList.end (); it++)
5539 os << (int) *it <<
", ";
5544 if (!it->measObjectEutra.cellsToAddModList.empty ())
5546 os <<
" cellsToAddModList: " << std::endl;
5547 std::list<LteRrcSap::CellsToAddMod> auxList = it->measObjectEutra.cellsToAddModList;
5548 std::list<LteRrcSap::CellsToAddMod>::iterator it = auxList.begin ();
5549 for (; it != auxList.end (); it++)
5551 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5552 os <<
" physCellId: " << (
int)it->physCellId << std::endl;
5553 os <<
" cellIndividualOffset: " << (int)it->cellIndividualOffset << std::endl;
5554 os <<
" ------ " << std::endl;
5558 if (!it->measObjectEutra.blackCellsToAddModList.empty ())
5560 os <<
" blackCellsToAddModList: " << std::endl;
5561 std::list<LteRrcSap::BlackCellsToAddMod> auxList = it->measObjectEutra.blackCellsToAddModList;
5562 std::list<LteRrcSap::BlackCellsToAddMod>::iterator it = auxList.begin ();
5563 for (; it != auxList.end (); it++)
5565 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
5566 os <<
" physCellIdRange.start: " << (
int)it->physCellIdRange.start << std::endl;
5567 os <<
" physCellIdRange.haveRange: " << it->physCellIdRange.haveRange << std::endl;
5568 os <<
" physCellIdRange.range: " << (int)it->physCellIdRange.range << std::endl;
5569 os <<
" ------ " << std::endl;
5573 os <<
" haveCellForWhichToReportCGI: " << it->measObjectEutra.haveCellForWhichToReportCGI << std::endl;
5574 os <<
" cellForWhichToReportCGI: " << (int)it->measObjectEutra.cellForWhichToReportCGI << std::endl;
5575 os <<
" ------------- " << std::endl;
5582 os <<
" reportConfigToAddModList: " << std::endl;
5584 std::list<LteRrcSap::ReportConfigToAddMod>::iterator it = auxList.begin ();
5585 for (; it != auxList.end (); it++)
5587 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5588 os <<
" reportConfigEutra.triggerType " << (
int)it->reportConfigEutra.triggerType << std::endl;
5591 os <<
" reportConfigEutra.eventId " << (int)it->reportConfigEutra.eventId << std::endl;
5594 os <<
" reportConfigEutra.reportOnLeave " << (int)it->reportConfigEutra.reportOnLeave << std::endl;
5595 os <<
" reportConfigEutra.a3Offset " << (
int)it->reportConfigEutra.a3Offset << std::endl;
5599 os <<
" reportConfigEutra.threshold1.choice " << (int)it->reportConfigEutra.threshold1.choice << std::endl;
5600 os <<
" reportConfigEutra.threshold1.range " << (
int)it->reportConfigEutra.threshold1.range << std::endl;
5603 os <<
" reportConfigEutra.threshold2.choice " << (int)it->reportConfigEutra.threshold2.choice << std::endl;
5604 os <<
" reportConfigEutra.threshold2.range " << (
int)it->reportConfigEutra.threshold2.range << std::endl;
5607 os <<
" reportConfigEutra.hysteresis " << (int)it->reportConfigEutra.hysteresis << std::endl;
5608 os <<
" reportConfigEutra.timeToTrigger " << (
int)it->reportConfigEutra.timeToTrigger << std::endl;
5612 os <<
" reportConfigEutra.purpose " << (int)it->reportConfigEutra.purpose << std::endl;
5614 os <<
" reportConfigEutra.triggerQuantity " << (int)it->reportConfigEutra.triggerQuantity << std::endl;
5615 os <<
" reportConfigEutra.reportQuantity " << (
int)it->reportConfigEutra.reportQuantity << std::endl;
5616 os <<
" reportConfigEutra.maxReportCells " << (int)it->reportConfigEutra.maxReportCells << std::endl;
5617 os <<
" reportConfigEutra.reportInterval " << (
int)it->reportConfigEutra.reportInterval << std::endl;
5618 os <<
" reportConfigEutra.reportAmount " << (int)it->reportConfigEutra.reportAmount << std::endl;
5624 os <<
" measIdToAddModList: " << std::endl;
5626 std::list<LteRrcSap::MeasIdToAddMod>::iterator it = auxList.begin ();
5627 for (; it != auxList.end (); it++)
5629 os <<
" measId: " << (int)it->measId << std::endl;
5630 os <<
" measObjectId: " << (
int)it->measObjectId << std::endl;
5631 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
5632 os <<
" ------ " << std::endl;
5795 std::list<LteRrcSap::SrbToAddMod>
5801 std::list<LteRrcSap::DrbToAddMod>
5845 std::bitset<4> handoverPrepInfoOpts;
5846 handoverPrepInfoOpts.set (3,1);
5847 handoverPrepInfoOpts.set (2,0);
5848 handoverPrepInfoOpts.set (1,0);
5849 handoverPrepInfoOpts.set (0,0);
5903 std::bitset<0> bitset0;
5911 int criticalExtensionsChosen;
5914 if (criticalExtensionsChosen == 1)
5919 else if (criticalExtensionsChosen == 0)
5928 else if (c1Chosen == 0)
5931 std::bitset<4> handoverPrepInfoOpts;
5936 for (
int i = 0; i < n; i++)
5942 if (handoverPrepInfoOpts[3])
5959 std::bitset<16> cRnti;
5974 std::bitset<8> systemFrameNumber;
5978 std::bitset<10> spare;
5995 if (handoverPrepInfoOpts[2])
6000 if (handoverPrepInfoOpts[1])
6005 if (handoverPrepInfoOpts[0])
6116 std::bitset<0> bitset0;
6141 std::bitset<16> cRnti;
6151 std::bitset<16> shortMacI;
6173 std::bitset<2> spare;
6265 std::bitset<0> bitset0;
6279 int criticalExtensionsChoice;
6281 if (criticalExtensionsChoice == 1)
6286 else if (criticalExtensionsChoice == 0)
6299 std::bitset<1> nonCriticalExtensionPresent;
6317 os <<
"RadioResourceConfigDedicated: " << std::endl;
6385 std::bitset<0> bitset0;
6399 int criticalExtensionsChoice;
6401 if (criticalExtensionsChoice == 1)
6406 else if (criticalExtensionsChoice == 0)
6409 std::bitset<1> opts;
6484 std::bitset<0> bitset0;
6493 int criticalExtensionsChoice;
6495 if (criticalExtensionsChoice == 1)
6500 else if (criticalExtensionsChoice == 0)
6503 std::bitset<1> opts;
6578 std::bitset<0> bitset0;
6592 int criticalExtensionsChoice;
6594 if (criticalExtensionsChoice == 1)
6599 else if (criticalExtensionsChoice == 0)
6608 std::bitset<3> opts;
6700 std::bitset<0> bitset0;
6710 int criticalExtensionsChoice;
6712 if (criticalExtensionsChoice == 1)
6717 else if (criticalExtensionsChoice == 0)
6727 else if (c1Choice == 0)
6730 std::bitset<1> opts;
6810 std::bitset<0> bitset0;
6816 int criticalExtensionsChoice;
6819 if (criticalExtensionsChoice == 1)
6824 else if (criticalExtensionsChoice == 0)
6837 std::bitset<1> isNonCriticalExtensionPresent;
6843 if (isNonCriticalExtensionPresent[0])
6866 std::list<LteRrcSap::MeasResultEutra>::iterator it = measResultListEutra.begin ();
6867 for (; it != measResultListEutra.end (); it++)
6869 os <<
" physCellId =" << (int) it->physCellId << std::endl;
6870 os <<
" haveCgiInfo =" << it->haveCgiInfo << std::endl;
6871 if (it->haveCgiInfo)
6873 os <<
" plmnIdentity = " << (int) it->cgiInfo.plmnIdentity << std::endl;
6874 os <<
" cellIdentity = " << (
int) it->cgiInfo.cellIdentity << std::endl;
6875 os <<
" trackingAreaCode = " << (int) it->cgiInfo.trackingAreaCode << std::endl;
6876 os <<
" havePlmnIdentityList = " << !it->cgiInfo.plmnIdentityList.empty () << std::endl;
6877 if (!it->cgiInfo.plmnIdentityList.empty ())
6879 for (std::list<uint32_t>::iterator it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.end (); it2++)
6881 os <<
" plmnId : " << *it2 << std::endl;
6886 os <<
" haveRsrpResult =" << it->haveRsrpResult << std::endl;
6887 if (it->haveRsrpResult)
6889 os <<
" rsrpResult =" << (int) it->rsrpResult << std::endl;
6892 os <<
" haveRsrqResult =" << it->haveRsrqResult << std::endl;
6893 if (it->haveRsrqResult)
6895 os <<
" rsrqResult =" << (int) it->rsrqResult << std::endl;
6936 std::cout <<
"UL DCCH MSG TYPE: " <<
m_messageType << std::endl;
6948 std::bitset<0> bitset0;
6997 std::cout <<
"DL DCCH MSG TYPE: " <<
m_messageType << std::endl;
7009 std::bitset<0> bitset0;
7058 std::cout <<
"UL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7070 std::bitset<0> bitset0;
7119 std::cout <<
"DL CCCH MSG TYPE: " <<
m_messageType << std::endl;
7131 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?
uint32_t carrierFreq
carrier frequency
CellIdentification structure.
uint8_t drbIdentity
DRB identity.
RadioResourceConfigCommonSCell radioResourceConfigCommonSCell
radio resource config common SCell
CarrierFreqEutra carrierFreq
carrier frequency
void SerializeDlDcchMessage(int msgType) const
Serialize DL DCCH message function.
#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.
Event A1: Serving becomes better than absolute threshold.
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.
uint8_t cellIndex
cell index
std::list< MeasObjectToAddMod > measObjectToAddModList
measure object to add mod list
uint8_t numberOfRaPreambles
number of RA preambles
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
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.
void SerializeDlCcchMessage(int msgType) const
Serialize DL CCCH message function.
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.
Event A5: PCell becomes worse than absolute threshold1 AND Neighbour becomes better than another abso...
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.
RSRP is used for the threshold.
bool haveSmeasure
have S measure?
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)
LteRrcSap::HandoverPreparationInfo GetMessage() const
Returns a HandoverPreparationInfo IE from the values in the class attributes.
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?
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
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.
ReportConfigEutra reportConfigEutra
report config eutra
uint8_t rsrqResult
the RSRQ result
uint8_t logicalChannelGroup
logical channel group
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
ReestablishmentCause
ReestablishmentCause enumeration.
bool haveRadioResourceConfigDedicatedSCell
have radio resource config dedicated SCell?
uint8_t rrcTransactionIdentifier
RRC transaction identifier.
void SerializeUlDcchMessage(int msgType) const
Serialize UL DCCH message function.
uint8_t sMeasure
S measure.
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?
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
RrcConnectionReconfigurationCompleted structure.
MeasResultServFreqList measScellResultList
measure SCell result list
RSRQ is used for the threshold.
enum ns3::LteRrcSap::ReportConfigEutra::@68 reportInterval
Report interval enumeration.
bool haveAntennaInfoUlDedicated
have antenna info UL dedicated?
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
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.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
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 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?
Event A2: Serving becomes worse than absolute threshold.
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
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...
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
int8_t cellIndividualOffset
cell individual offset
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated
bool haveMeasResultNeighCells
have measure result neighbor cells
uint16_t dlBandwidth
1: Cell characteristics
uint8_t cellForWhichToReportCGI
cell for which to report CGI
uint32_t physCellId
physical cell ID
uint8_t filterCoefficientRSRQ
filter coefficient RSRQ
bool havePdschConfigDedicated
have PDSCH config dedicated?
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.
void SerializeUlCcchMessage(int msgType) const
Serialize UL CCCH message function.
uint8_t range
Value range used in RSRP/RSRQ threshold.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
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.
BlackCellsToAddMod structure.
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
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.
LteRrcSap::AsConfig GetAsConfig() const
Getter for m_asConfig.
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...
Event A4: Neighbour becomes better than absolute threshold.
Reference Signal Received Quality.
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.
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)
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
RadioResourceConfigDedicatedSCell structure.
int8_t pb
INTEGER (0..3),.
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
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer.
int8_t offsetFreq
offset frequency
Reference Signal Received Power.
bool haveAntennaInfoDedicated
have antenna info dedicated?
RrcConnectionReestablishmentComplete structure.
uint8_t transmissionMode
transmission mode
enum ns3::LteRrcSap::RlcConfig::direction choice
direction choice
void Print(std::ostream &os) const
This function prints the object, for debugging purposes.
Event A3: Neighbour becomes amount of offset better than PCell.
enum ns3::LteRrcSap::MeasGapConfig::action type
action type
MobilityControlInfo mobilityControlInfo
mobility control info
bool haveMeasConfig
have measure config
Both the RSRP and RSRQ quantities are to be included in the measurement report.
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.
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.