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])
2230 NS_FATAL_ERROR (
"RrcAsn1Header Print() function must also specify LteRrcSap::RadioResourceConfigDedicated as a second argument");
2236 os <<
" srbToAddModList: " << std::endl;
2237 std::list<LteRrcSap::SrbToAddMod>::iterator it = radioResourceConfigDedicated.
srbToAddModList.begin ();
2238 for (; it != radioResourceConfigDedicated.
srbToAddModList.end (); it++)
2240 os <<
" srbIdentity: " << (int)it->srbIdentity << std::endl;
2241 os <<
" logicalChannelConfig: " << std::endl;
2242 os <<
" priority: " << (
int)it->logicalChannelConfig.priority << std::endl;
2243 os <<
" prioritizedBitRateKbps: " << (int)it->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
2244 os <<
" bucketSizeDurationMs: " << (
int)it->logicalChannelConfig.bucketSizeDurationMs << std::endl;
2245 os <<
" logicalChannelGroup: " << (int)it->logicalChannelConfig.logicalChannelGroup << std::endl;
2249 os <<
" drbToAddModList: " << std::endl;
2250 std::list<LteRrcSap::DrbToAddMod>::iterator it2 = radioResourceConfigDedicated.
drbToAddModList.begin ();
2251 for (; it2 != radioResourceConfigDedicated.
drbToAddModList.end (); it2++)
2253 os <<
" epsBearerIdentity: " << (int)it2->epsBearerIdentity << std::endl;
2254 os <<
" drbIdentity: " << (
int)it2->drbIdentity << std::endl;
2255 os <<
" rlcConfig: " << it2->rlcConfig.choice << std::endl;
2256 os <<
" logicalChannelIdentity: " << (int)it2->logicalChannelIdentity << std::endl;
2257 os <<
" logicalChannelConfig: " << std::endl;
2258 os <<
" priority: " << (
int)it2->logicalChannelConfig.priority << std::endl;
2259 os <<
" prioritizedBitRateKbps: " << (int)it2->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
2260 os <<
" bucketSizeDurationMs: " << (
int)it2->logicalChannelConfig.bucketSizeDurationMs << std::endl;
2261 os <<
" logicalChannelGroup: " << (int)it2->logicalChannelConfig.logicalChannelGroup << std::endl;
2265 os <<
" drbToReleaseList: ";
2266 std::list<uint8_t>::iterator it3 = radioResourceConfigDedicated.
drbToReleaseList.begin ();
2269 os << (int)*it3 <<
", ";
2277 os <<
" physicalConfigDedicated: " << std::endl;
2282 os <<
" soundingRsUlConfigDedicated: " << std::endl;
2299 std::bitset<0> bitset0;
2302 std::bitset<3> sysInfoBlkT1Opts;
2306 std::bitset<1> cellAccessRelatedInfoOpts;
2310 int numPlmnIdentityInfoElements;
2312 for (
int i = 0; i < numPlmnIdentityInfoElements; i++)
2321 std::bitset<16> trackingAreaCode;
2325 std::bitset<28> cellIdentity;
2338 if (cellAccessRelatedInfoOpts[0])
2341 std::bitset<27> csgIdentity;
2347 std::bitset<1> qRxLevMinOffsetPresent;
2350 if (qRxLevMinOffsetPresent[0])
2356 if (sysInfoBlkT1Opts[2])
2366 int numSchedulingInfo;
2368 for (
int i = 0; i < numSchedulingInfo; i++)
2374 for (
int j = 0; j < numSibType; j++)
2380 if (sysInfoBlkT1Opts[1])
2392 if (sysInfoBlkT1Opts[0])
2403 std::bitset<0> bitset0;
2406 std::bitset<2> sysInfoBlkT2Opts;
2408 if (sysInfoBlkT2Opts[1])
2427 std::bitset<2> freqInfoOpts;
2429 if (freqInfoOpts[1])
2435 if (freqInfoOpts[0])
2467 if (sysInfoBlkT2Opts[0])
2483 std::bitset<0> bitset0;
2486 std::bitset<9> rrCfgCommOptions;
2490 if (rrCfgCommOptions[8])
2496 std::bitset<1> prachConfigInfoPresent;
2503 if (prachConfigInfoPresent[0])
2509 if (rrCfgCommOptions[7])
2550 if (rrCfgCommOptions[6])
2556 if (rrCfgCommOptions[5])
2562 if (rrCfgCommOptions[4])
2568 if (rrCfgCommOptions[3])
2574 if (rrCfgCommOptions[2])
2580 if (rrCfgCommOptions[1])
2586 if (rrCfgCommOptions[0])
2600 std::bitset<0> bitset0;
2606 std::bitset<1> preamblesGroupAConfigPresent;
2667 if (preamblesGroupAConfigPresent[0])
2760 std::bitset<0> bitset0;
2778 std::bitset<1> prachConfigInfoPresent;
2783 if (prachConfigInfoPresent[0])
2871 std::bitset<1> measResultNeighCellsPresent;
2892 int measResultNeighCellsChoice;
2897 if (measResultNeighCellsChoice == 0)
2903 for (
int i = 0; i < numElems; i++)
2907 std::bitset<1> isCgiInfoPresent;
2914 measResultEutra.
haveCgiInfo = isCgiInfoPresent[0];
2915 if (isCgiInfoPresent[0])
2917 std::bitset<1> havePlmnIdentityList;
2927 std::bitset<28> cellId;
2932 std::bitset<16> trArCo;
2937 if (havePlmnIdentityList[0])
2942 for (
int j = 0; j < numPlmnElems; j++)
2952 std::bitset<2> measResultOpts;
2956 if (measResultOpts[1])
2964 if (measResultOpts[0])
2975 if (measResultNeighCellsChoice == 1)
2981 if (measResultNeighCellsChoice == 2)
2986 if (measResultNeighCellsChoice == 3)
3000 std::bitset<1> isMccPresent;
3003 if (isMccPresent[0])
3014 for (
int j = mncDigits - 1; j >= 0; j--)
3017 mnc += n * pow (10,j);
3030 std::bitset<0> bitset0;
3031 std::bitset<2> bitset2;
3032 std::bitset<11> bitset11;
3041 int measObjectToRemoveListElems;
3044 for (
int i = 0; i < measObjectToRemoveListElems; i++)
3054 int measObjectToAddModListElems;
3057 for (
int i = 0; i < measObjectToAddModListElems; i++)
3066 int measObjectChoice;
3069 switch (measObjectChoice)
3089 std::bitset<5> measObjectEutraOpts;
3131 if (measObjectEutraOpts[4])
3137 for (
int i = 0; i < numElems; i++)
3144 if (measObjectEutraOpts[3])
3150 for (
int i = 0; i < numElems; i++)
3171 if (measObjectEutraOpts[2])
3177 for (
int i = 0; i < numElems; i++)
3185 if (measObjectEutraOpts[1])
3191 for (
int i = 0; i < numElems; i++)
3200 std::bitset<1> isRangePresent;
3268 if (measObjectEutraOpts[0])
3282 int reportConfigToRemoveListElems;
3285 for (
int i = 0; i < reportConfigToRemoveListElems; i++)
3295 int reportConfigToAddModListElems;
3298 for (
int i = 0; i < reportConfigToAddModListElems; i++)
3307 int reportConfigChoice;
3310 if (reportConfigChoice == 0)
3316 int triggerTypeChoice;
3319 if (triggerTypeChoice == 0)
3329 switch (eventIdChoice)
3423 if (triggerTypeChoice == 1)
3550 if (reportConfigChoice == 1)
3563 int measIdToRemoveListElems;
3566 for (
int i = 0; i < measIdToRemoveListElems; i++)
3576 int measIdToAddModListElems;
3579 for (
int i = 0; i < measIdToAddModListElems; i++)
3602 std::bitset<4> quantityConfigOpts;
3605 if (quantityConfigOpts[3])
3718 if (quantityConfigOpts[2])
3723 if (quantityConfigOpts[1])
3728 if (quantityConfigOpts[0])
3739 int measGapConfigChoice;
3741 switch (measGapConfigChoice)
3752 int gapOffsetChoice;
3754 switch (gapOffsetChoice)
3788 int speedStateParsChoice;
3790 switch (speedStateParsChoice)
3867 m_mmec = std::bitset<8> (0ul);
3868 m_mTmsi = std::bitset<32> (0ul);
3870 m_spare = std::bitset<1> (0ul);
3881 static TypeId tid =
TypeId (
"ns3::RrcConnectionRequestHeader")
3890 os <<
"MMEC:" <<
m_mmec << std::endl;
3891 os <<
"MTMSI:" <<
m_mTmsi << std::endl;
3893 os <<
"Spare: " <<
m_spare << std::endl;
3942 std::bitset<1> dummy;
3943 std::bitset<0> optionalOrDefaultMask;
4021 os <<
"radioResourceConfigDedicated:" << std::endl;
4070 std::bitset<0> bitset0;
4071 std::bitset<1> bitset1;
4072 std::bitset<2> bitset2;
4086 int criticalExtensionChoice;
4088 if (criticalExtensionChoice == 1)
4093 else if (criticalExtensionChoice == 0)
4156 std::list<LteRrcSap::SrbToAddMod>
4162 std::list<LteRrcSap::DrbToAddMod>
4228 std::bitset<0> bitset0;
4331 std::bitset<0> bitset0;
4417 std::bitset<6> options;
4436 std::bitset<4> mobCtrlIntoOptional;
4439 mobCtrlIntoOptional.set (1,0);
4538 std::bitset<0> bitset0;
4567 else if (c1Chosen == 0)
4570 std::bitset<6> rrcConnRecOpts;
4583 std::bitset<4> mobCtrlOpts;
4594 std::bitset<1> ulCarrierFreqPresent;
4600 if (ulCarrierFreqPresent[0])
4611 std::bitset<1> ulBandwidthPresent;
4640 if (ulBandwidthPresent[0])
4680 std::bitset<16> cRnti;
4699 if (rrcConnRecOpts[3])
4712 if (rrcConnRecOpts[1])
4718 if (rrcConnRecOpts[0])
4737 os <<
" measObjectToRemoveList: ";
4739 std::list<uint8_t>::iterator it = auxList.begin ();
4740 for (; it != auxList.end (); it++)
4742 os << (int) *it <<
", ";
4748 os <<
" reportConfigToRemoveList: ";
4750 std::list<uint8_t>::iterator it = auxList.begin ();
4751 for (; it != auxList.end (); it++)
4753 os << (int) *it <<
", ";
4759 os <<
" measIdToRemoveList: ";
4761 std::list<uint8_t>::iterator it = auxList.begin ();
4762 for (; it != auxList.end (); it++)
4764 os << (int) *it <<
", ";
4771 os <<
" measObjectToAddMod: " << std::endl;
4773 std::list<LteRrcSap::MeasObjectToAddMod>::iterator it = auxList.begin ();
4774 for (; it != auxList.end (); it++)
4776 os <<
" measObjectId: " << (int)it->measObjectId << std::endl;
4777 os <<
" carrierFreq: " << (
int)it->measObjectEutra.carrierFreq << std::endl;
4778 os <<
" allowedMeasBandwidth: " << (int)it->measObjectEutra.allowedMeasBandwidth << std::endl;
4779 os <<
" presenceAntennaPort1: " << it->measObjectEutra.presenceAntennaPort1 << std::endl;
4780 os <<
" neighCellConfig: " << (
int) it->measObjectEutra.neighCellConfig << std::endl;
4781 os <<
" offsetFreq: " << (int)it->measObjectEutra.offsetFreq << std::endl;
4784 if (!it->measObjectEutra.cellsToRemoveList.empty ())
4786 os <<
" cellsToRemoveList: ";
4787 std::list<uint8_t> auxList = it->measObjectEutra.cellsToRemoveList;
4788 std::list<uint8_t>::iterator it = auxList.begin ();
4789 for (; it != auxList.end (); it++)
4791 os << (int) *it <<
", ";
4796 if (!it->measObjectEutra.blackCellsToRemoveList.empty ())
4798 os <<
" blackCellsToRemoveList: ";
4799 std::list<uint8_t> auxList = it->measObjectEutra.blackCellsToRemoveList;
4800 std::list<uint8_t>::iterator it = auxList.begin ();
4801 for (; it != auxList.end (); it++)
4803 os << (int) *it <<
", ";
4808 if (!it->measObjectEutra.cellsToAddModList.empty ())
4810 os <<
" cellsToAddModList: " << std::endl;
4811 std::list<LteRrcSap::CellsToAddMod> auxList = it->measObjectEutra.cellsToAddModList;
4812 std::list<LteRrcSap::CellsToAddMod>::iterator it = auxList.begin ();
4813 for (; it != auxList.end (); it++)
4815 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
4816 os <<
" physCellId: " << (
int)it->physCellId << std::endl;
4817 os <<
" cellIndividualOffset: " << (int)it->cellIndividualOffset << std::endl;
4818 os <<
" ------ " << std::endl;
4822 if (!it->measObjectEutra.blackCellsToAddModList.empty ())
4824 os <<
" blackCellsToAddModList: " << std::endl;
4825 std::list<LteRrcSap::BlackCellsToAddMod> auxList = it->measObjectEutra.blackCellsToAddModList;
4826 std::list<LteRrcSap::BlackCellsToAddMod>::iterator it = auxList.begin ();
4827 for (; it != auxList.end (); it++)
4829 os <<
" cellIndex: " << (int)it->cellIndex << std::endl;
4830 os <<
" physCellIdRange.start: " << (
int)it->physCellIdRange.start << std::endl;
4831 os <<
" physCellIdRange.haveRange: " << it->physCellIdRange.haveRange << std::endl;
4832 os <<
" physCellIdRange.range: " << (int)it->physCellIdRange.range << std::endl;
4833 os <<
" ------ " << std::endl;
4837 os <<
" haveCellForWhichToReportCGI: " << it->measObjectEutra.haveCellForWhichToReportCGI << std::endl;
4838 os <<
" cellForWhichToReportCGI: " << (int)it->measObjectEutra.cellForWhichToReportCGI << std::endl;
4839 os <<
" ------------- " << std::endl;
4846 os <<
" reportConfigToAddModList: " << std::endl;
4848 std::list<LteRrcSap::ReportConfigToAddMod>::iterator it = auxList.begin ();
4849 for (; it != auxList.end (); it++)
4851 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
4852 os <<
" reportConfigEutra.triggerType " << (
int)it->reportConfigEutra.triggerType << std::endl;
4855 os <<
" reportConfigEutra.eventId " << (int)it->reportConfigEutra.eventId << std::endl;
4858 os <<
" reportConfigEutra.reportOnLeave " << (int)it->reportConfigEutra.reportOnLeave << std::endl;
4859 os <<
" reportConfigEutra.a3Offset " << (
int)it->reportConfigEutra.a3Offset << std::endl;
4863 os <<
" reportConfigEutra.threshold1.choice " << (int)it->reportConfigEutra.threshold1.choice << std::endl;
4864 os <<
" reportConfigEutra.threshold1.range " << (
int)it->reportConfigEutra.threshold1.range << std::endl;
4867 os <<
" reportConfigEutra.threshold2.choice " << (int)it->reportConfigEutra.threshold2.choice << std::endl;
4868 os <<
" reportConfigEutra.threshold2.range " << (
int)it->reportConfigEutra.threshold2.range << std::endl;
4871 os <<
" reportConfigEutra.hysteresis " << (int)it->reportConfigEutra.hysteresis << std::endl;
4872 os <<
" reportConfigEutra.timeToTrigger " << (
int)it->reportConfigEutra.timeToTrigger << std::endl;
4876 os <<
" reportConfigEutra.purpose " << (int)it->reportConfigEutra.purpose << std::endl;
4878 os <<
" reportConfigEutra.triggerQuantity " << (int)it->reportConfigEutra.triggerQuantity << std::endl;
4879 os <<
" reportConfigEutra.reportQuantity " << (
int)it->reportConfigEutra.reportQuantity << std::endl;
4880 os <<
" reportConfigEutra.maxReportCells " << (int)it->reportConfigEutra.maxReportCells << std::endl;
4881 os <<
" reportConfigEutra.reportInterval " << (
int)it->reportConfigEutra.reportInterval << std::endl;
4882 os <<
" reportConfigEutra.reportAmount " << (int)it->reportConfigEutra.reportAmount << std::endl;
4888 os <<
" measIdToAddModList: " << std::endl;
4890 std::list<LteRrcSap::MeasIdToAddMod>::iterator it = auxList.begin ();
4891 for (; it != auxList.end (); it++)
4893 os <<
" measId: " << (int)it->measId << std::endl;
4894 os <<
" measObjectId: " << (
int)it->measObjectId << std::endl;
4895 os <<
" reportConfigId: " << (int)it->reportConfigId << std::endl;
4896 os <<
" ------ " << std::endl;
5043 std::list<LteRrcSap::SrbToAddMod>
5049 std::list<LteRrcSap::DrbToAddMod>
5093 std::bitset<4> handoverPrepInfoOpts;
5094 handoverPrepInfoOpts.set (3,1);
5095 handoverPrepInfoOpts.set (2,0);
5096 handoverPrepInfoOpts.set (1,0);
5097 handoverPrepInfoOpts.set (0,0);
5151 std::bitset<0> bitset0;
5159 int criticalExtensionsChosen;
5162 if (criticalExtensionsChosen == 1)
5167 else if (criticalExtensionsChosen == 0)
5176 else if (c1Chosen == 0)
5179 std::bitset<4> handoverPrepInfoOpts;
5184 for (
int i = 0; i < n; i++)
5190 if (handoverPrepInfoOpts[3])
5207 std::bitset<16> cRnti;
5222 std::bitset<8> systemFrameNumber;
5226 std::bitset<10> spare;
5243 if (handoverPrepInfoOpts[2])
5248 if (handoverPrepInfoOpts[1])
5253 if (handoverPrepInfoOpts[0])
5364 std::bitset<0> bitset0;
5389 std::bitset<16> cRnti;
5399 std::bitset<16> shortMacI;
5421 std::bitset<2> spare;
5513 std::bitset<0> bitset0;
5527 int criticalExtensionsChoice;
5529 if (criticalExtensionsChoice == 1)
5534 else if (criticalExtensionsChoice == 0)
5547 std::bitset<1> nonCriticalExtensionPresent;
5565 os <<
"RadioResourceConfigDedicated: " << std::endl;
5633 std::bitset<0> bitset0;