22 #include "ns3/lte-rrc-header.h"
27 #define MAX_DRB 11 // According to section 6.4 3GPP TS 36.331
28 #define MAX_EARFCN 65535
29 #define MAX_RAT_CAPABILITIES 8
30 #define MAX_SI_MESSAGE 32
33 #define MAX_REPORT_CONFIG_ID 32
34 #define MAX_OBJECT_ID 32
35 #define MAX_MEAS_ID 32
36 #define MAX_CELL_MEAS 32
37 #define MAX_CELL_REPORT 8
76 std::list<LteRrcSap::DrbToAddMod>::iterator it = drbToAddModList.begin ();
77 for (; it != drbToAddModList.end (); it++)
81 std::bitset<5> drbToAddModListOptionalFieldsPresent = std::bitset<5> ();
82 drbToAddModListOptionalFieldsPresent.set (4,1);
83 drbToAddModListOptionalFieldsPresent.set (3,0);
84 drbToAddModListOptionalFieldsPresent.set (2,1);
85 drbToAddModListOptionalFieldsPresent.set (1,1);
86 drbToAddModListOptionalFieldsPresent.set (0,1);
95 switch (it->rlcConfig.choice)
164 std::list<LteRrcSap::SrbToAddMod>::iterator it = srbToAddModList.begin ();
165 for (; it != srbToAddModList.end (); it++)
169 std::bitset<2> srbToAddModListOptionalFieldsPresent = std::bitset<2> ();
170 srbToAddModListOptionalFieldsPresent.set (1,0);
171 srbToAddModListOptionalFieldsPresent.set (0,1);
201 int prioritizedBitRate;
205 prioritizedBitRate = 0;
208 prioritizedBitRate = 1;
211 prioritizedBitRate = 2;
214 prioritizedBitRate = 3;
217 prioritizedBitRate = 4;
220 prioritizedBitRate = 5;
223 prioritizedBitRate = 6;
226 prioritizedBitRate = 7;
231 int bucketSizeDuration;
235 bucketSizeDuration = 0;
238 bucketSizeDuration = 1;
241 bucketSizeDuration = 2;
244 bucketSizeDuration = 3;
247 bucketSizeDuration = 4;
250 bucketSizeDuration = 5;
253 bucketSizeDuration = 5;
265 std::bitset<10> optionalFieldsPhysicalConfigDedicated;
266 optionalFieldsPhysicalConfigDedicated.set (9,0);
267 optionalFieldsPhysicalConfigDedicated.set (8,0);
268 optionalFieldsPhysicalConfigDedicated.set (7,0);
269 optionalFieldsPhysicalConfigDedicated.set (6,0);
270 optionalFieldsPhysicalConfigDedicated.set (5,0);
271 optionalFieldsPhysicalConfigDedicated.set (4,0);
272 optionalFieldsPhysicalConfigDedicated.set (3,0);
275 optionalFieldsPhysicalConfigDedicated.set (0,0);
347 bool isSrbToAddModListPresent = !radioResourceConfigDedicated.
srbToAddModList.empty ();
348 bool isDrbToAddModListPresent = !radioResourceConfigDedicated.
drbToAddModList.empty ();
349 bool isDrbToReleaseListPresent = !radioResourceConfigDedicated.
drbToReleaseList.empty ();
352 std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
353 optionalFieldsPresent.set (5,isSrbToAddModListPresent);
354 optionalFieldsPresent.set (4,isDrbToAddModListPresent);
355 optionalFieldsPresent.set (3,isDrbToReleaseListPresent);
356 optionalFieldsPresent.set (2,0);
357 optionalFieldsPresent.set (1,0);
362 if (isSrbToAddModListPresent)
368 if (isDrbToAddModListPresent)
374 if (isDrbToReleaseListPresent)
377 std::list<uint8_t>::iterator it = radioResourceConfigDedicated.
drbToReleaseList.begin ();
395 std::bitset<3> sysInfoBlk1Opts;
396 sysInfoBlk1Opts.set (2,0);
397 sysInfoBlk1Opts.set (1,0);
398 sysInfoBlk1Opts.set (0,0);
454 std::bitset<9> rrCfgCmmOpts;
455 rrCfgCmmOpts.set (8,1);
456 rrCfgCmmOpts.set (7,0);
457 rrCfgCmmOpts.set (6,0);
458 rrCfgCmmOpts.set (5,0);
459 rrCfgCmmOpts.set (4,0);
460 rrCfgCmmOpts.set (3,0);
461 rrCfgCmmOpts.set (2,0);
462 rrCfgCmmOpts.set (1,0);
463 rrCfgCmmOpts.set (0,0);
642 std::list<LteRrcSap::MeasResultEutra>::iterator it;
664 if (!it->cgiInfo.plmnIdentityList.empty ())
667 std::list<uint32_t>::iterator it2;
668 for (it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.end (); it2++)
676 std::bitset<2> measResultFieldsPresent;
677 measResultFieldsPresent[1] = it->haveRsrpResult;
678 measResultFieldsPresent[0] = it->haveRsrqResult;
681 if (it->haveRsrpResult)
686 if (it->haveRsrqResult)
701 int nDig = (plmnId > 99) ? 3 : 2;
704 for (
int i = nDig - 1; i >= 0; i--)
706 int n = floor (plmnId / pow (10,i));
708 plmnId -= n * pow (10,i);
862 switch (qOffsetRange)
965 switch (thresholdEutra.
choice)
983 std::bitset<11> measConfigOptional;
993 measConfigOptional.set (1,
false );
1016 std::bitset<5> measObjOpts;
1017 measObjOpts.set (4,!it->measObjectEutra.cellsToRemoveList.empty () );
1018 measObjOpts.set (3,!it->measObjectEutra.cellsToAddModList.empty () );
1019 measObjOpts.set (2,!it->measObjectEutra.blackCellsToRemoveList.empty () );
1020 measObjOpts.set (1,!it->measObjectEutra.blackCellsToAddModList.empty () );
1021 measObjOpts.set (0,it->measObjectEutra.haveCellForWhichToReportCGI);
1028 switch (it->measObjectEutra.allowedMeasBandwidth)
1056 if (!it->measObjectEutra.cellsToRemoveList.empty ())
1059 for (std::list<uint8_t>::iterator it2 = it->measObjectEutra.cellsToRemoveList.begin (); it2 != it->measObjectEutra.cellsToRemoveList.end (); it2++)
1065 if (!it->measObjectEutra.cellsToAddModList.empty ())
1068 for (std::list<LteRrcSap::CellsToAddMod>::iterator it2 = it->measObjectEutra.cellsToAddModList.begin (); it2 != it->measObjectEutra.cellsToAddModList.end (); it2++)
1083 if (!it->measObjectEutra.blackCellsToRemoveList.empty () )
1086 for (std::list<uint8_t>::iterator it2 = it->measObjectEutra.blackCellsToRemoveList.begin (); it2 != it->measObjectEutra.blackCellsToRemoveList.end (); it2++)
1092 if (!it->measObjectEutra.blackCellsToAddModList.empty () )
1095 for (std::list<LteRrcSap::BlackCellsToAddMod>::iterator it2 = it->measObjectEutra.blackCellsToAddModList.begin (); it2 != it->measObjectEutra.blackCellsToAddModList.end (); it2++)
1102 std::bitset<1> rangePresent = std::bitset<1> (it2->physCellIdRange.haveRange);
1105 if (it2->physCellIdRange.haveRange)
1107 switch (it2->physCellIdRange.range)
1159 if (it->measObjectEutra.haveCellForWhichToReportCGI)
1187 switch (it->reportConfigEutra.triggerType)
1192 switch (it->reportConfigEutra.purpose)
1206 switch (it->reportConfigEutra.eventId)
1239 switch (it->reportConfigEutra.timeToTrigger)
1316 switch (it->reportConfigEutra.reportInterval)
1369 switch (it->reportConfigEutra.reportAmount)
1422 std::bitset<4> quantityConfigOpts (0);
1423 quantityConfigOpts.set (3,1);
1661 int thresholdEutraChoice, range;
1664 switch (thresholdEutraChoice)
1669 thresholdEutra->
range = range;
1675 thresholdEutra->
range = range;
1689 *qOffsetRange = -24;
1692 *qOffsetRange = -22;
1695 *qOffsetRange = -20;
1698 *qOffsetRange = -18;
1701 *qOffsetRange = -16;
1704 *qOffsetRange = -14;
1707 *qOffsetRange = -12;
1710 *qOffsetRange = -10;
1789 std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
1792 if (optionalFieldsPresent[5])
1798 if (optionalFieldsPresent[4])
1804 if (optionalFieldsPresent[3])
1810 for (
int i = 0; i < n; i++)
1817 if (optionalFieldsPresent[2])
1823 if (optionalFieldsPresent[1])
1830 if (optionalFieldsPresent[0])
1845 srbToAddModList->clear ();
1848 for (
int i = 0; i < numElems; i++)
1853 std::bitset<2> optionalFields;
1861 if (optionalFields[1])
1867 if (optionalFields[0])
1885 srbToAddModList->insert (srbToAddModList->end (),srbToAddMod);
1898 drbToAddModList->clear ();
1900 for (
int i = 0; i < n; i++)
1904 std::bitset<5> optionalFields;
1907 if (optionalFields[4])
1917 if (optionalFields[3])
1923 if (optionalFields[2])
1930 std::bitset<0> bitset0;
1982 if (optionalFields[1])
1988 if (optionalFields[0])
1993 drbToAddModList->insert (drbToAddModList->end (),drbToAddMod);
2005 std::bitset<1> bitset1;
2015 logicalChannelConfig->
priority = n;
2019 uint16_t prioritizedBitRateKbps;
2024 prioritizedBitRateKbps = 0;
2027 prioritizedBitRateKbps = 8;
2030 prioritizedBitRateKbps = 16;
2033 prioritizedBitRateKbps = 32;
2036 prioritizedBitRateKbps = 64;
2039 prioritizedBitRateKbps = 128;
2042 prioritizedBitRateKbps = 256;
2045 prioritizedBitRateKbps = 10000;
2048 prioritizedBitRateKbps = 10000;
2054 uint16_t bucketSizeDurationMs;
2058 bucketSizeDurationMs = 50;
2061 bucketSizeDurationMs = 100;
2064 bucketSizeDurationMs = 150;
2067 bucketSizeDurationMs = 300;
2070 bucketSizeDurationMs = 500;
2073 bucketSizeDurationMs = 1000;
2076 bucketSizeDurationMs = 1000;
2093 std::bitset<10> optionalFieldPresent;
2096 if (optionalFieldPresent[9])
2101 if (optionalFieldPresent[8])
2106 if (optionalFieldPresent[7])
2111 if (optionalFieldPresent[6])
2116 if (optionalFieldPresent[5])
2121 if (optionalFieldPresent[4])
2126 if (optionalFieldPresent[3])
2132 if (optionalFieldPresent[2])
2149 std::bitset<0> bitset0;
2180 if (optionalFieldPresent[1])
2191 std::bitset<1> codebookSubsetRestrictionPresent;
2198 if (codebookSubsetRestrictionPresent[0])
2204 int txantennaselchosen;
2206 if (txantennaselchosen == 0)
2211 else if (txantennaselchosen == 1)
2218 if (optionalFieldPresent[0])
2229 os <<
" srbToAddModList: " << std::endl;
2230 std::list<LteRrcSap::SrbToAddMod>::iterator it = radioResourceConfigDedicated.
srbToAddModList.begin ();
2231 for (; it != radioResourceConfigDedicated.
srbToAddModList.end (); it++)
2233 os <<
" srbIdentity: " << (int)it->srbIdentity << std::endl;
2234 os <<
" logicalChannelConfig: " << std::endl;
2235 os <<
" priority: " << (
int)it->logicalChannelConfig.priority << std::endl;
2236 os <<
" prioritizedBitRateKbps: " << (int)it->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
2237 os <<
" bucketSizeDurationMs: " << (
int)it->logicalChannelConfig.bucketSizeDurationMs << std::endl;
2238 os <<
" logicalChannelGroup: " << (int)it->logicalChannelConfig.logicalChannelGroup << std::endl;
2242 os <<
" drbToAddModList: " << std::endl;
2243 std::list<LteRrcSap::DrbToAddMod>::iterator it2 = radioResourceConfigDedicated.
drbToAddModList.begin ();
2244 for (; it2 != radioResourceConfigDedicated.
drbToAddModList.end (); it2++)
2246 os <<
" epsBearerIdentity: " << (int)it2->epsBearerIdentity << std::endl;
2247 os <<
" drbIdentity: " << (
int)it2->drbIdentity << std::endl;
2248 os <<
" rlcConfig: " << it2->rlcConfig.choice << std::endl;
2249 os <<
" logicalChannelIdentity: " << (int)it2->logicalChannelIdentity << std::endl;
2250 os <<
" logicalChannelConfig: " << std::endl;
2251 os <<
" priority: " << (
int)it2->logicalChannelConfig.priority << std::endl;
2252 os <<
" prioritizedBitRateKbps: " << (int)it2->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
2253 os <<
" bucketSizeDurationMs: " << (
int)it2->logicalChannelConfig.bucketSizeDurationMs << std::endl;
2254 os <<
" logicalChannelGroup: " << (int)it2->logicalChannelConfig.logicalChannelGroup << std::endl;
2258 os <<
" drbToReleaseList: ";
2259 std::list<uint8_t>::iterator it3 = radioResourceConfigDedicated.
drbToReleaseList.begin ();
2262 os << (int)*it3 <<
", ";
2270 os <<
" physicalConfigDedicated: " << std::endl;
2275 os <<
" soundingRsUlConfigDedicated: " << std::endl;
2292 std::bitset<0> bitset0;
2295 std::bitset<3> sysInfoBlkT1Opts;
2299 std::bitset<1> cellAccessRelatedInfoOpts;
2303 int numPlmnIdentityInfoElements;
2305 for (
int i = 0; i < numPlmnIdentityInfoElements; i++)
2314 std::bitset<16> trackingAreaCode;
2318 std::bitset<28> cellIdentity;
2331 if (cellAccessRelatedInfoOpts[0])
2334 std::bitset<27> csgIdentity;
2340 std::bitset<1> qRxLevMinOffsetPresent;
2343 if (qRxLevMinOffsetPresent[0])
2349 if (sysInfoBlkT1Opts[2])
2359 int numSchedulingInfo;
2361 for (
int i = 0; i < numSchedulingInfo; i++)
2367 for (
int j = 0; j < numSibType; j++)
2373 if (sysInfoBlkT1Opts[1])
2385 if (sysInfoBlkT1Opts[0])
2396 std::bitset<0> bitset0;
2399 std::bitset<2> sysInfoBlkT2Opts;
2401 if (sysInfoBlkT2Opts[1])
2420 std::bitset<2> freqInfoOpts;
2422 if (freqInfoOpts[1])
2428 if (freqInfoOpts[0])
2460 if (sysInfoBlkT2Opts[0])
2476 std::bitset<0> bitset0;
2479 std::bitset<9> rrCfgCommOptions;
2483 if (rrCfgCommOptions[8])
2489 std::bitset<1> prachConfigInfoPresent;
2496 if (prachConfigInfoPresent[0])
2502 if (rrCfgCommOptions[7])
2543 if (rrCfgCommOptions[6])
2549 if (rrCfgCommOptions[5])
2555 if (rrCfgCommOptions[4])
2561 if (rrCfgCommOptions[3])
2567 if (rrCfgCommOptions[2])
2573 if (rrCfgCommOptions[1])
2579 if (rrCfgCommOptions[0])
2593 std::bitset<0> bitset0;
2599 std::bitset<1> preamblesGroupAConfigPresent;
2660 if (preamblesGroupAConfigPresent[0])
2753 std::bitset<0> bitset0;
2771 std::bitset<1> prachConfigInfoPresent;
2776 if (prachConfigInfoPresent[0])
2864 std::bitset<1> measResultNeighCellsPresent;
2885 int measResultNeighCellsChoice;
2890 if (measResultNeighCellsChoice == 0)
2896 for (
int i = 0; i < numElems; i++)
2900 std::bitset<1> isCgiInfoPresent;
2907 measResultEutra.
haveCgiInfo = isCgiInfoPresent[0];
2908 if (isCgiInfoPresent[0])
2910 std::bitset<1> havePlmnIdentityList;
2920 std::bitset<28> cellId;
2925 std::bitset<16> trArCo;
2930 if (havePlmnIdentityList[0])
2935 for (
int j = 0; j < numPlmnElems; j++)
2945 std::bitset<2> measResultOpts;
2949 if (measResultOpts[1])
2957 if (measResultOpts[0])
2968 if (measResultNeighCellsChoice == 1)
2974 if (measResultNeighCellsChoice == 2)
2979 if (measResultNeighCellsChoice == 3)
2993 std::bitset<1> isMccPresent;
2996 if (isMccPresent[0])
3007 for (
int j = mncDigits - 1; j >= 0; j--)
3010 mnc += n * pow (10,j);
3023 std::bitset<0> bitset0;
3024 std::bitset<2> bitset2;
3025 std::bitset<11> bitset11;
3034 int measObjectToRemoveListElems;
3037 for (
int i = 0; i < measObjectToRemoveListElems; i++)
3047 int measObjectToAddModListElems;
3050 for (
int i = 0; i < measObjectToAddModListElems; i++)
3059 int measObjectChoice;
3062 switch (measObjectChoice)
3082 std::bitset<5> measObjectEutraOpts;
3124 if (measObjectEutraOpts[4])
3130 for (
int i = 0; i < numElems; i++)
3137 if (measObjectEutraOpts[3])
3143 for (
int i = 0; i < numElems; i++)
3164 if (measObjectEutraOpts[2])
3170 for (
int i = 0; i < numElems; i++)
3178 if (measObjectEutraOpts[1])
3184 for (
int i = 0; i < numElems; i++)
3193 std::bitset<1> isRangePresent;
3261 if (measObjectEutraOpts[0])
3275 int reportConfigToRemoveListElems;
3278 for (
int i = 0; i < reportConfigToRemoveListElems; i++)
3288 int reportConfigToAddModListElems;
3291 for (
int i = 0; i < reportConfigToAddModListElems; i++)
3300 int reportConfigChoice;
3303 if (reportConfigChoice == 0)
3309 int triggerTypeChoice;
3312 if (triggerTypeChoice == 0)
3322 switch (eventIdChoice)
3416 if (triggerTypeChoice == 1)
3543 if (reportConfigChoice == 1)
3556 int measIdToRemoveListElems;
3559 for (
int i = 0; i < measIdToRemoveListElems; i++)
3569 int measIdToAddModListElems;
3572 for (
int i = 0; i < measIdToAddModListElems; i++)
3595 std::bitset<4> quantityConfigOpts;
3598 if (quantityConfigOpts[3])
3711 if (quantityConfigOpts[2])
3716 if (quantityConfigOpts[1])
3721 if (quantityConfigOpts[0])
3732 int measGapConfigChoice;
3734 switch (measGapConfigChoice)
3745 int gapOffsetChoice;
3747 switch (gapOffsetChoice)
3781 int speedStateParsChoice;
3783 switch (speedStateParsChoice)
3860 m_mmec = std::bitset<8> (0ul);
3861 m_mTmsi = std::bitset<32> (0ul);
3863 m_spare = std::bitset<1> (0ul);
3874 static TypeId tid =
TypeId (
"ns3::RrcConnectionRequestHeader")
3883 os <<
"MMEC:" <<
m_mmec << std::endl;
3884 os <<
"MTMSI:" <<
m_mTmsi << std::endl;
3886 os <<
"Spare: " <<
m_spare << std::endl;
3935 std::bitset<1> dummy;
3936 std::bitset<0> optionalOrDefaultMask;
4014 os <<
"radioResourceConfigDedicated:" << std::endl;
4063 std::bitset<0> bitset0;
4064 std::bitset<1> bitset1;
4065 std::bitset<2> bitset2;
4079 int criticalExtensionChoice;
4081 if (criticalExtensionChoice == 1)
4086 else if (criticalExtensionChoice == 0)
4149 std::list<LteRrcSap::SrbToAddMod>
4155 std::list<LteRrcSap::DrbToAddMod>
4221 std::bitset<0> bitset0;
4324 std::bitset<0> bitset0;
4410 std::bitset<6> options;
4429 std::bitset<4> mobCtrlIntoOptional;
4432 mobCtrlIntoOptional.set (1,0);
4531 std::bitset<0> bitset0;
4560 else if (c1Chosen == 0)
4563 std::bitset<6> rrcConnRecOpts;
4576 std::bitset<4> mobCtrlOpts;
4587 std::bitset<1> ulCarrierFreqPresent;
4593 if (ulCarrierFreqPresent[0])
4604 std::bitset<1> ulBandwidthPresent;
4633 if (ulBandwidthPresent[0])
4673 std::bitset<16> cRnti;
4692 if (rrcConnRecOpts[3])
4705 if (rrcConnRecOpts[1])
4711 if (rrcConnRecOpts[0])
4730 os <<
" measObjectToRemoveList: ";
4732 std::list<uint8_t>::iterator it = auxList.begin ();
4733 for (; it != auxList.end (); it++)
4735 os << (int) *it <<
", ";
4741 os <<
" reportConfigToRemoveList: ";
4743 std::list<uint8_t>::iterator it = auxList.begin ();
4744 for (; it != auxList.end (); it++)
4746 os << (int) *it <<
", ";
4752 os <<
" measIdToRemoveList: ";
4754 std::list<uint8_t>::iterator it = auxList.begin ();
4755 for (; it != auxList.end (); it++)
4757 os << (int) *it <<
", ";
4764 os <<
" measObjectToAddMod: " << std::endl;
4766 std::list<LteRrcSap::MeasObjectToAddMod>::iterator it = auxList.begin ();
4767 for (; it != auxList.end (); it++)
4769 os <<
" measObjectId: " << (int)it->measObjectId << std::endl;
4770 os <<
" carrierFreq: " << (
int)it->measObjectEutra.carrierFreq << std::endl;
4771 os <<
" allowedMeasBandwidth: " << (int)it->measObjectEutra.allowedMeasBandwidth << std::endl;
4772 os <<
" presenceAntennaPort1: " << it->measObjectEutra.presenceAntennaPort1 << std::endl;
4773 os <<
" neighCellConfig: " << (
int) it->measObjectEutra.neighCellConfig << std::endl;
4774 os <<
" offsetFreq: " << (int)it->measObjectEutra.offsetFreq << std::endl;
4777 if (!it->measObjectEutra.cellsToRemoveList.empty ())
4779 os <<
" cellsToRemoveList: ";
4780 std::list<uint8_t> auxList = it->measObjectEutra.cellsToRemoveList;
4781 std::list<uint8_t>::iterator it = auxList.begin ();
4782 for (; it != auxList.end (); it++)
4784 os << (int) *it <<
", ";
4789 if (!it->measObjectEutra.blackCellsToRemoveList.empty ())
4791 os <<
" blackCellsToRemoveList: ";
4792 std::list<uint8_t> auxList = it->measObjectEutra.blackCellsToRemoveList;
4793 std::list<uint8_t>::iterator it = auxList.begin ();
4794 for (; it != auxList.end (); it++)
4796 os << (int) *it <<
", ";
4801 if (!it->measObjectEutra.cellsToAddModList.empty ())
4803 os <<
" cellsToAddModList: " << std::endl;
4804 std::list<LteRrcSap::CellsToAddMod> auxList = it->measObjectEutra.cellsToAddModList;
4805 std::list<LteRrcSap::CellsToAddMod>::iterator it = auxList.begin ();
4806 for (; it != auxList.end (); it++)
4808 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
4809 os <<
" physCellId: " << (
int)it->physCellId << std::endl;
4810 os <<
" cellIndividualOffset: " << (int)it->cellIndividualOffset << std::endl;
4811 os <<
" ------ " << std::endl;
4815 if (!it->measObjectEutra.blackCellsToAddModList.empty ())
4817 os <<
" blackCellsToAddModList: " << std::endl;
4818 std::list<LteRrcSap::BlackCellsToAddMod> auxList = it->measObjectEutra.blackCellsToAddModList;
4819 std::list<LteRrcSap::BlackCellsToAddMod>::iterator it = auxList.begin ();
4820 for (; it != auxList.end (); it++)
4822 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
4823 os <<
" physCellIdRange.start: " << (
int)it->physCellIdRange.start << std::endl;
4824 os <<
" physCellIdRange.haveRange: " << it->physCellIdRange.haveRange << std::endl;
4825 os <<
" physCellIdRange.range: " << (int)it->physCellIdRange.range << std::endl;
4826 os <<
" ------ " << std::endl;
4830 os <<
" haveCellForWhichToReportCGI: " << it->measObjectEutra.haveCellForWhichToReportCGI << std::endl;
4831 os <<
" cellForWhichToReportCGI: " << (int)it->measObjectEutra.cellForWhichToReportCGI << std::endl;
4832 os <<
" ------------- " << std::endl;
4839 os <<
" reportConfigToAddModList: " << std::endl;
4841 std::list<LteRrcSap::ReportConfigToAddMod>::iterator it = auxList.begin ();
4842 for (; it != auxList.end (); it++)
4844 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
4845 os <<
" reportConfigEutra.triggerType " << (
int)it->reportConfigEutra.triggerType << std::endl;
4848 os <<
" reportConfigEutra.eventId " << (int)it->reportConfigEutra.eventId << std::endl;
4851 os <<
" reportConfigEutra.reportOnLeave " << (int)it->reportConfigEutra.reportOnLeave << std::endl;
4852 os <<
" reportConfigEutra.a3Offset " << (
int)it->reportConfigEutra.a3Offset << std::endl;
4856 os <<
" reportConfigEutra.threshold1.choice " << (int)it->reportConfigEutra.threshold1.choice << std::endl;
4857 os <<
" reportConfigEutra.threshold1.range " << (
int)it->reportConfigEutra.threshold1.range << std::endl;
4860 os <<
" reportConfigEutra.threshold2.choice " << (int)it->reportConfigEutra.threshold2.choice << std::endl;
4861 os <<
" reportConfigEutra.threshold2.range " << (
int)it->reportConfigEutra.threshold2.range << std::endl;
4864 os <<
" reportConfigEutra.hysteresis " << (int)it->reportConfigEutra.hysteresis << std::endl;
4865 os <<
" reportConfigEutra.timeToTrigger " << (
int)it->reportConfigEutra.timeToTrigger << std::endl;
4869 os <<
" reportConfigEutra.purpose " << (int)it->reportConfigEutra.purpose << std::endl;
4871 os <<
" reportConfigEutra.triggerQuantity " << (int)it->reportConfigEutra.triggerQuantity << std::endl;
4872 os <<
" reportConfigEutra.reportQuantity " << (
int)it->reportConfigEutra.reportQuantity << std::endl;
4873 os <<
" reportConfigEutra.maxReportCells " << (int)it->reportConfigEutra.maxReportCells << std::endl;
4874 os <<
" reportConfigEutra.reportInterval " << (
int)it->reportConfigEutra.reportInterval << std::endl;
4875 os <<
" reportConfigEutra.reportAmount " << (int)it->reportConfigEutra.reportAmount << std::endl;
4881 os <<
" measIdToAddModList: " << std::endl;
4883 std::list<LteRrcSap::MeasIdToAddMod>::iterator it = auxList.begin ();
4884 for (; it != auxList.end (); it++)
4886 os <<
" measId: " << (int)it->measId << std::endl;
4887 os <<
" measObjectId: " << (
int)it->measObjectId << std::endl;
4888 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
4889 os <<
" ------ " << std::endl;
5036 std::list<LteRrcSap::SrbToAddMod>
5042 std::list<LteRrcSap::DrbToAddMod>
5086 std::bitset<4> handoverPrepInfoOpts;
5087 handoverPrepInfoOpts.set (3,1);
5088 handoverPrepInfoOpts.set (2,0);
5089 handoverPrepInfoOpts.set (1,0);
5090 handoverPrepInfoOpts.set (0,0);
5144 std::bitset<0> bitset0;
5152 int criticalExtensionsChosen;
5155 if (criticalExtensionsChosen == 1)
5160 else if (criticalExtensionsChosen == 0)
5169 else if (c1Chosen == 0)
5172 std::bitset<4> handoverPrepInfoOpts;
5177 for (
int i = 0; i < n; i++)
5183 if (handoverPrepInfoOpts[3])
5200 std::bitset<16> cRnti;
5215 std::bitset<8> systemFrameNumber;
5219 std::bitset<10> spare;
5236 if (handoverPrepInfoOpts[2])
5241 if (handoverPrepInfoOpts[1])
5246 if (handoverPrepInfoOpts[0])
5357 std::bitset<0> bitset0;
5382 std::bitset<16> cRnti;
5392 std::bitset<16> shortMacI;
5414 std::bitset<2> spare;
5506 std::bitset<0> bitset0;
5520 int criticalExtensionsChoice;
5522 if (criticalExtensionsChoice == 1)
5527 else if (criticalExtensionsChoice == 0)
5540 std::bitset<1> nonCriticalExtensionPresent;
5558 os <<
"RadioResourceConfigDedicated: " << std::endl;
5626 std::bitset<0> bitset0;
5640 int criticalExtensionsChoice;
5642 if (criticalExtensionsChoice == 1)
5647 else if (criticalExtensionsChoice == 0)
5650 std::bitset<1> opts;
5725 std::bitset<0> bitset0;
5734 int criticalExtensionsChoice;
5736 if (criticalExtensionsChoice == 1)
5741 else if (criticalExtensionsChoice == 0)
5744 std::bitset<1> opts;
5819 std::bitset<0> bitset0;
5833 int criticalExtensionsChoice;
5835 if (criticalExtensionsChoice == 1)
5840 else if (criticalExtensionsChoice == 0)
5849 std::bitset<3> opts;
5941 std::bitset<0> bitset0;
5951 int criticalExtensionsChoice;
5953 if (criticalExtensionsChoice == 1)
5958 else if (criticalExtensionsChoice == 0)
5968 else if (c1Choice == 0)
5971 std::bitset<1> opts;
6051 std::bitset<0> bitset0;
6057 int criticalExtensionsChoice;
6060 if (criticalExtensionsChoice == 1)
6065 else if (criticalExtensionsChoice == 0)
6078 std::bitset<1> isNonCriticalExtensionPresent;
6084 if (isNonCriticalExtensionPresent[0])
6107 std::list<LteRrcSap::MeasResultEutra>::iterator it = measResultListEutra.begin ();
6108 for (; it != measResultListEutra.end (); it++)
6110 os <<
" physCellId =" << (int) it->physCellId << std::endl;
6111 os <<
" haveCgiInfo =" << it->haveCgiInfo << std::endl;
6112 if (it->haveCgiInfo)
6114 os <<
" plmnIdentity = " << (int) it->cgiInfo.plmnIdentity << std::endl;
6115 os <<
" cellIdentity = " << (
int) it->cgiInfo.cellIdentity << std::endl;
6116 os <<
" trackingAreaCode = " << (int) it->cgiInfo.trackingAreaCode << std::endl;
6117 os <<
" havePlmnIdentityList = " << !it->cgiInfo.plmnIdentityList.empty () << std::endl;
6118 if (!it->cgiInfo.plmnIdentityList.empty ())
6120 for (std::list<uint32_t>::iterator it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.begin (); it2++)
6122 os <<
" plmnId : " << *it2 << std::endl;
6127 os <<
" haveRsrpResult =" << it->haveRsrpResult << std::endl;
6128 if (it->haveRsrpResult)
6130 os <<
" rsrpResult =" << (int) it->rsrpResult << std::endl;
6133 os <<
" haveRsrqResult =" << it->haveRsrqResult << std::endl;
6134 if (it->haveRsrqResult)
6136 os <<
" rsrqResult =" << (int) it->rsrqResult << std::endl;
6177 std::cout <<
"UL DCCH MSG TYPE: " <<
m_messageType << std::endl;
6189 std::bitset<0> bitset0;
6238 std::cout <<
"DL DCCH MSG TYPE: " <<
m_messageType << std::endl;
6250 std::bitset<0> bitset0;
6299 std::cout <<
"UL CCCH MSG TYPE: " <<
m_messageType << std::endl;
6311 std::bitset<0> bitset0;
6360 std::cout <<
"DL CCCH MSG TYPE: " <<
m_messageType << std::endl;
6372 std::bitset<0> bitset0;