25 #include "ns3/lte-rrc-header.h"    30 #define MAX_DRB 11 // According to section 6.4 3GPP TS 36.331    31 #define MAX_EARFCN 262143    32 #define MAX_RAT_CAPABILITIES 8    33 #define MAX_SI_MESSAGE 32    36 #define MAX_REPORT_CONFIG_ID 32    37 #define MAX_OBJECT_ID 32    38 #define MAX_MEAS_ID 32    39 #define MAX_CELL_MEAS 32    40 #define MAX_CELL_REPORT 8    42 #define MAX_SCELL_REPORT 5    43 #define MAX_SCELL_CONF 5    83       case 15: 
n = 1; 
break;
    84       case 25: 
n = 2; 
break;
    85       case 50: 
n = 3; 
break;
    86       case 75: 
n = 4; 
break;
    87       case 100: 
n = 5; 
break;
   100       case 0: bw = 6; 
break;
   101       case 1: bw = 15; 
break;
   102       case 2: bw = 25; 
break;
   103       case 3: bw = 50; 
break;
   104       case 4: bw = 75; 
break;
   105       case 5: bw = 100; 
break;
   119   std::list<LteRrcSap::DrbToAddMod>::iterator it = drbToAddModList.begin ();
   120   for (; it != drbToAddModList.end (); it++)
   124       std::bitset<5> drbToAddModListOptionalFieldsPresent = std::bitset<5> ();
   125       drbToAddModListOptionalFieldsPresent.set (4,1); 
   126       drbToAddModListOptionalFieldsPresent.set (3,0); 
   127       drbToAddModListOptionalFieldsPresent.set (2,1); 
   128       drbToAddModListOptionalFieldsPresent.set (1,1); 
   129       drbToAddModListOptionalFieldsPresent.set (0,1); 
   138       switch (it->rlcConfig.choice)
   207   std::list<LteRrcSap::SrbToAddMod>::iterator it = srbToAddModList.begin ();
   208   for (; it != srbToAddModList.end (); it++)
   212       std::bitset<2> srbToAddModListOptionalFieldsPresent = std::bitset<2> ();
   213       srbToAddModListOptionalFieldsPresent.set (1,0); 
   214       srbToAddModListOptionalFieldsPresent.set (0,1); 
   244   int prioritizedBitRate;
   248       prioritizedBitRate = 0;
   251       prioritizedBitRate = 1;
   254       prioritizedBitRate = 2;
   257       prioritizedBitRate = 3;
   260       prioritizedBitRate = 4;
   263       prioritizedBitRate = 5;
   266       prioritizedBitRate = 6;
   269       prioritizedBitRate = 7;          
   274   int bucketSizeDuration;
   278       bucketSizeDuration = 0;
   281       bucketSizeDuration = 1;
   284       bucketSizeDuration = 2;
   287       bucketSizeDuration = 3;
   290       bucketSizeDuration = 4;
   293       bucketSizeDuration = 5;
   296       bucketSizeDuration = 5;
   308   std::bitset<10> optionalFieldsPhysicalConfigDedicated;
   310   optionalFieldsPhysicalConfigDedicated.set (8,0);  
   311   optionalFieldsPhysicalConfigDedicated.set (7,0);  
   312   optionalFieldsPhysicalConfigDedicated.set (6,0);  
   313   optionalFieldsPhysicalConfigDedicated.set (5,0);  
   314   optionalFieldsPhysicalConfigDedicated.set (4,0);  
   315   optionalFieldsPhysicalConfigDedicated.set (3,0);  
   318   optionalFieldsPhysicalConfigDedicated.set (0,0);  
   404   bool isSrbToAddModListPresent = !radioResourceConfigDedicated.
srbToAddModList.empty ();
   405   bool isDrbToAddModListPresent = !radioResourceConfigDedicated.
drbToAddModList.empty ();
   406   bool isDrbToReleaseListPresent = !radioResourceConfigDedicated.
drbToReleaseList.empty ();
   409   std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
   410   optionalFieldsPresent.set (5,isSrbToAddModListPresent);  
   411   optionalFieldsPresent.set (4,isDrbToAddModListPresent);  
   412   optionalFieldsPresent.set (3,isDrbToReleaseListPresent);  
   413   optionalFieldsPresent.set (2,0);  
   414   optionalFieldsPresent.set (1,0);  
   419   if (isSrbToAddModListPresent)
   425   if (isDrbToAddModListPresent)
   431   if (isDrbToReleaseListPresent)
   434       std::list<uint8_t>::iterator it = radioResourceConfigDedicated.
drbToReleaseList.begin ();
   452   std::bitset<3> sysInfoBlk1Opts;
   453   sysInfoBlk1Opts.set (2,0); 
   454   sysInfoBlk1Opts.set (1,0); 
   455   sysInfoBlk1Opts.set (0,0); 
   511   std::bitset<9> rrCfgCmmOpts;
   512   rrCfgCmmOpts.set (8,1); 
   513   rrCfgCmmOpts.set (7,0); 
   514   rrCfgCmmOpts.set (6,0); 
   515   rrCfgCmmOpts.set (5,0); 
   516   rrCfgCmmOpts.set (4,0); 
   517   rrCfgCmmOpts.set (3,0); 
   518   rrCfgCmmOpts.set (2,0); 
   519   rrCfgCmmOpts.set (1,0); 
   520   rrCfgCmmOpts.set (0,0); 
   653     std::bitset<4> measResultOptional;
   655     measResultOptional.set (2, 
false); 
   656     measResultOptional.set (1, 
false); 
   681       std::list<LteRrcSap::MeasResultEutra>::iterator it;
   703               if (!it->cgiInfo.plmnIdentityList.empty ())
   706                   std::list<uint32_t>::iterator it2;
   707                   for (it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.end (); it2++)
   715           std::bitset<2> measResultFieldsPresent;
   716           measResultFieldsPresent[1] = it->haveRsrpResult;
   717           measResultFieldsPresent[0] = it->haveRsrqResult;
   720           if (it->haveRsrpResult)
   725           if (it->haveRsrqResult)
   736         std::list<LteRrcSap::MeasResultScell>::iterator it;
   742             std::bitset<2> measResultScellPresent;
   748             std::bitset<2> measResultScellFieldsPresent;
   749             measResultScellFieldsPresent[1] = it->haveRsrpResult;
   750             measResultScellFieldsPresent[0] = it->haveRsrqResult;
   753             if (it->haveRsrpResult)
   758             if (it->haveRsrqResult)
   774   int nDig = (plmnId > 99) ? 3 : 2;
   777   for (
int i = nDig - 1; i >= 0; i--)
   779       int n = floor (plmnId / pow (10,i));
   781       plmnId -= 
n * pow (10,i);
   954   switch (qOffsetRange)
  1057   switch (thresholdEutra.
choice)
  1075   std::bitset<11> measConfigOptional;
  1085   measConfigOptional.set (1, 
false ); 
  1108           std::bitset<5> measObjOpts;
  1109           measObjOpts.set (4,!it->measObjectEutra.cellsToRemoveList.empty () );
  1110           measObjOpts.set (3,!it->measObjectEutra.cellsToAddModList.empty () );
  1111           measObjOpts.set (2,!it->measObjectEutra.blackCellsToRemoveList.empty () );
  1112           measObjOpts.set (1,!it->measObjectEutra.blackCellsToAddModList.empty () );
  1113           measObjOpts.set (0,it->measObjectEutra.haveCellForWhichToReportCGI);
  1126           if (!it->measObjectEutra.cellsToRemoveList.empty ())
  1129               for (std::list<uint8_t>::iterator it2 = it->measObjectEutra.cellsToRemoveList.begin (); it2 != it->measObjectEutra.cellsToRemoveList.end (); it2++)
  1135           if (!it->measObjectEutra.cellsToAddModList.empty ())
  1138               for (std::list<LteRrcSap::CellsToAddMod>::iterator it2 = it->measObjectEutra.cellsToAddModList.begin (); it2 != it->measObjectEutra.cellsToAddModList.end (); it2++)
  1153           if (!it->measObjectEutra.blackCellsToRemoveList.empty () )
  1156               for (std::list<uint8_t>::iterator it2 = it->measObjectEutra.blackCellsToRemoveList.begin (); it2 != it->measObjectEutra.blackCellsToRemoveList.end (); it2++)
  1162           if (!it->measObjectEutra.blackCellsToAddModList.empty () )
  1165               for (std::list<LteRrcSap::BlackCellsToAddMod>::iterator it2 = it->measObjectEutra.blackCellsToAddModList.begin (); it2 != it->measObjectEutra.blackCellsToAddModList.end (); it2++)
  1172                   std::bitset<1> rangePresent = std::bitset<1> (it2->physCellIdRange.haveRange);
  1175                   if (it2->physCellIdRange.haveRange)
  1177                       switch (it2->physCellIdRange.range)
  1229           if (it->measObjectEutra.haveCellForWhichToReportCGI)
  1257           switch (it->reportConfigEutra.triggerType)
  1262               switch (it->reportConfigEutra.purpose)
  1276               switch (it->reportConfigEutra.eventId)
  1309               switch (it->reportConfigEutra.timeToTrigger)
  1386           switch (it->reportConfigEutra.reportInterval)
  1439           switch (it->reportConfigEutra.reportAmount)
  1492       std::bitset<4> quantityConfigOpts (0);
  1493       quantityConfigOpts.set (3,1);
  1731     std::bitset<3> noncriticalExtension_v1020;
  1732     noncriticalExtension_v1020.set (2,0); 
  1733     noncriticalExtension_v1020.set (1,1); 
  1734     noncriticalExtension_v1020.set (0,0); 
  1741             std::bitset<4> sCellToAddMod_r10;
  1742             sCellToAddMod_r10.set (3,1); 
  1743             sCellToAddMod_r10.set (2,1); 
  1744             sCellToAddMod_r10.set (1,1); 
  1745             sCellToAddMod_r10.set (0,it->haveRadioResourceConfigDedicatedSCell); 
  1750             std::bitset<2> cellIdentification_r10;
  1751             cellIdentification_r10.set(1,1); 
  1752             cellIdentification_r10.set(0,1); 
  1761             if (it->haveRadioResourceConfigDedicatedSCell)
  1779     std::bitset<2> radioResourceConfigCommonSCell_r10;
  1787         std::bitset<5> nonUlConfiguration_r10;
  1788         nonUlConfiguration_r10.set (4,1); 
  1789         nonUlConfiguration_r10.set (3,1); 
  1790         nonUlConfiguration_r10.set (2,0); 
  1791         nonUlConfiguration_r10.set (1,1); 
  1792         nonUlConfiguration_r10.set (0,0); 
  1797         std::bitset<1> antennaInfoCommon_r10;
  1798         antennaInfoCommon_r10.set (0,1);
  1802         std::bitset<2> pdschConfigCommon_r10;
  1803         pdschConfigCommon_r10.set (1,1);
  1804         pdschConfigCommon_r10.set (0,1);
  1815         std::bitset<7> UlConfiguration_r10;
  1816         UlConfiguration_r10.set (6,1); 
  1817         UlConfiguration_r10.set (5,0); 
  1818         UlConfiguration_r10.set (4,1); 
  1819         UlConfiguration_r10.set (3,0); 
  1820         UlConfiguration_r10.set (2,0); 
  1821         UlConfiguration_r10.set (1,1); 
  1822         UlConfiguration_r10.set (0,0); 
  1826          std::bitset<3> FreqInfo_r10;
  1827          FreqInfo_r10.set (2,1); 
  1828          FreqInfo_r10.set (1,1); 
  1829          FreqInfo_r10.set (0,0); 
  1836          std::bitset<2> UlPowerControlCommonSCell_r10;
  1837          UlPowerControlCommonSCell_r10.set (1,0); 
  1838          UlPowerControlCommonSCell_r10.set (0,1); 
  1847          std::bitset<1> prachConfigSCell_r10;
  1848          prachConfigSCell_r10.set(0,1);
  1859     std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
  1860     RadioResourceConfigDedicatedSCell_r10.set (0,1);
  1870     std::bitset<2> pcdscOpt;
  1878         std::bitset<4> nulOpt;
  1924         std::bitset<7> ulOpt;
  2006   int thresholdEutraChoice, range;
  2009   switch (thresholdEutraChoice)
  2014       thresholdEutra->
range = range;
  2020       thresholdEutra->
range = range;
  2034       *qOffsetRange = -24;
  2037       *qOffsetRange = -22;
  2040       *qOffsetRange = -20;
  2043       *qOffsetRange = -18;
  2046       *qOffsetRange = -16;
  2049       *qOffsetRange = -14;
  2052       *qOffsetRange = -12;
  2055       *qOffsetRange = -10;
  2134   std::bitset<6> optionalFieldsPresent = std::bitset<6> ();
  2137   if (optionalFieldsPresent[5])
  2143   if (optionalFieldsPresent[4])
  2149   if (optionalFieldsPresent[3])
  2155       for (
int i = 0; i < 
n; i++)
  2162   if (optionalFieldsPresent[2])
  2168   if (optionalFieldsPresent[1])
  2175   if (optionalFieldsPresent[0])
  2190   srbToAddModList->clear ();
  2193   for (
int i = 0; i < numElems; i++)
  2198       std::bitset<2> optionalFields;
  2206       if (optionalFields[1])
  2212       if (optionalFields[0])
  2230       srbToAddModList->insert (srbToAddModList->end (),srbToAddMod);
  2243   drbToAddModList->clear ();
  2245   for (
int i = 0; i < 
n; i++)
  2249       std::bitset<5> optionalFields;
  2252       if (optionalFields[4])
  2262       if (optionalFields[3])
  2268       if (optionalFields[2])
  2275           std::bitset<0> bitset0;
  2327       if (optionalFields[1])
  2333       if (optionalFields[0])
  2338       drbToAddModList->insert (drbToAddModList->end (),drbToAddMod);
  2350   std::bitset<1> bitset1;
  2364       uint16_t prioritizedBitRateKbps;
  2369           prioritizedBitRateKbps = 0;
  2372           prioritizedBitRateKbps = 8;
  2375           prioritizedBitRateKbps = 16;
  2378           prioritizedBitRateKbps = 32;
  2381           prioritizedBitRateKbps = 64;
  2384           prioritizedBitRateKbps = 128;
  2387           prioritizedBitRateKbps = 256;
  2390           prioritizedBitRateKbps = 10000;
  2393           prioritizedBitRateKbps = 10000;
  2399       uint16_t bucketSizeDurationMs;
  2403           bucketSizeDurationMs = 50;
  2406           bucketSizeDurationMs = 100;
  2409           bucketSizeDurationMs = 150;
  2412           bucketSizeDurationMs = 300;
  2415           bucketSizeDurationMs = 500;
  2418           bucketSizeDurationMs = 1000;
  2421           bucketSizeDurationMs = 1000;
  2438   std::bitset<10> optionalFieldPresent;
  2442   if (optionalFieldPresent[9])
  2445       std::bitset<0> bitset0;
  2457   if (optionalFieldPresent[8])
  2462   if (optionalFieldPresent[7])
  2467   if (optionalFieldPresent[6])
  2472   if (optionalFieldPresent[5])
  2477   if (optionalFieldPresent[4])
  2482   if (optionalFieldPresent[3])
  2488   if (optionalFieldPresent[2])
  2505           std::bitset<0> bitset0;
  2536   if (optionalFieldPresent[1])
  2547           std::bitset<1> codebookSubsetRestrictionPresent;
  2554           if (codebookSubsetRestrictionPresent[0])
  2560           int txantennaselchosen;
  2562           if (txantennaselchosen == 0)
  2567           else if (txantennaselchosen == 1)
  2574   if (optionalFieldPresent[0])
  2586   NS_FATAL_ERROR (
"RrcAsn1Header Print() function must also specify LteRrcSap::RadioResourceConfigDedicated as a second argument");
  2593     std::bitset<2> nonCriticalExtension_v890;
  2596     if (nonCriticalExtension_v890[0])
  2599         std::bitset<3> nonCriticalExtension_v920;
  2601         if (nonCriticalExtension_v920[0])
  2604             std::bitset<3> nonCriticalExtension_v1020;
  2606             NS_ASSERT (!nonCriticalExtension_v1020[2]); 
  2607             NS_ASSERT (nonCriticalExtension_v1020[1]); 
  2608             NS_ASSERT (!nonCriticalExtension_v1020[0]); 
  2614             for (
int i = 0; i < numElems; i++)
  2616                 std::bitset<4> sCellToAddMod_r10;
  2633                 if (sCellToAddMod_r10[0])
  2651     std::bitset<2> cellIdentification_r10;
  2669     std::bitset<2> radioResourceConfigCommonSCell_r10;
  2675         std::bitset<5> nonUlConfiguration_r10;
  2681         std::bitset<1> antennaInfoCommon_r10;
  2686         std::bitset<2> pdschConfigCommon_r10;
  2695         std::bitset<7> UlConfiguration_r10;
  2698         std::bitset<3> FreqInfo_r10;
  2706         std::bitset<2> UlPowerControlCommonSCell_r10;
  2711         std::bitset<1> prachConfigSCell_r10;
  2724     std::bitset<1> RadioResourceConfigDedicatedSCell_r10;
  2735     std::bitset<2> pcdscOpt;
  2741          std::bitset<4> nulOpt;
  2759                  std::bitset<1> codebookSubsetRestrictionPresent;
  2766                  if (codebookSubsetRestrictionPresent[0])
  2773                  int txantennaselchosen;
  2775                  if (txantennaselchosen == 0)
  2780                  else if (txantennaselchosen == 1)
  2791              std::bitset<0> bitset0;
  2806          std::bitset<7> ulOpt;
  2827                  std::bitset<1> codebookSubsetRestrictionPresent;
  2834                  if (codebookSubsetRestrictionPresent[0])
  2841                  int txantennaselchosen;
  2843                  if (txantennaselchosen == 0)
  2848                  else if (txantennaselchosen == 1)
  2873                  std::bitset<0> bitset0;
  2912   os << 
"   srbToAddModList: " << std::endl;
  2913   std::list<LteRrcSap::SrbToAddMod>::iterator it = radioResourceConfigDedicated.
srbToAddModList.begin ();
  2914   for (; it != radioResourceConfigDedicated.
srbToAddModList.end (); it++)
  2916       os << 
"      srbIdentity: " << (int)it->srbIdentity << std::endl;
  2917       os << 
"      logicalChannelConfig: " << std::endl;
  2918       os << 
"         priority: " <<  (
int)it->logicalChannelConfig.priority << std::endl;
  2919       os << 
"         prioritizedBitRateKbps: " <<  (int)it->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
  2920       os << 
"         bucketSizeDurationMs: " <<  (
int)it->logicalChannelConfig.bucketSizeDurationMs << std::endl;
  2921       os << 
"         logicalChannelGroup: " <<  (int)it->logicalChannelConfig.logicalChannelGroup << std::endl;
  2925   os << 
"   drbToAddModList: " << std::endl;
  2926   std::list<LteRrcSap::DrbToAddMod>::iterator it2 = radioResourceConfigDedicated.
drbToAddModList.begin ();
  2927   for (; it2 != radioResourceConfigDedicated.
drbToAddModList.end (); it2++)
  2929       os << 
"      epsBearerIdentity: " << (int)it2->epsBearerIdentity << std::endl;
  2930       os << 
"      drbIdentity: " << (
int)it2->drbIdentity << std::endl;
  2931       os << 
"      rlcConfig: " << it2->rlcConfig.choice << std::endl;
  2932       os << 
"      logicalChannelIdentity: " << (int)it2->logicalChannelIdentity << std::endl;
  2933       os << 
"      logicalChannelConfig: " << std::endl;
  2934       os << 
"         priority: " <<  (
int)it2->logicalChannelConfig.priority << std::endl;
  2935       os << 
"         prioritizedBitRateKbps: " <<  (int)it2->logicalChannelConfig.prioritizedBitRateKbps << std::endl;
  2936       os << 
"         bucketSizeDurationMs: " <<  (
int)it2->logicalChannelConfig.bucketSizeDurationMs << std::endl;
  2937       os << 
"         logicalChannelGroup: " <<  (int)it2->logicalChannelConfig.logicalChannelGroup << std::endl;
  2941   os << 
"   drbToReleaseList: ";
  2942   std::list<uint8_t>::iterator it3 = radioResourceConfigDedicated.
drbToReleaseList.begin ();
  2945       os << (int)*it3 << 
", ";
  2953       os << 
"   physicalConfigDedicated: " << std::endl;
  2958           os << 
"      soundingRsUlConfigDedicated: " << std::endl;
  2975   std::bitset<0> bitset0;
  2978   std::bitset<3> sysInfoBlkT1Opts;
  2982   std::bitset<1> cellAccessRelatedInfoOpts;
  2986   int numPlmnIdentityInfoElements;
  2988   for (
int i = 0; i < numPlmnIdentityInfoElements; i++)
  2997   std::bitset<16> trackingAreaCode;
  3001   std::bitset<28> cellIdentity;
  3014   if (cellAccessRelatedInfoOpts[0])
  3017       std::bitset<27> csgIdentity;
  3023   std::bitset<1> qRxLevMinOffsetPresent;
  3026   if (qRxLevMinOffsetPresent[0])
  3032   if (sysInfoBlkT1Opts[2])
  3042   int numSchedulingInfo;
  3044   for (
int i = 0; i < numSchedulingInfo; i++)
  3050       for (
int j = 0; j < numSibType; j++)
  3056   if (sysInfoBlkT1Opts[1])
  3068   if (sysInfoBlkT1Opts[0])
  3079   std::bitset<0> bitset0;
  3082   std::bitset<2> sysInfoBlkT2Opts;
  3084   if (sysInfoBlkT2Opts[1])
  3103   std::bitset<2> freqInfoOpts;
  3105   if (freqInfoOpts[1])
  3111   if (freqInfoOpts[0])
  3121   if (sysInfoBlkT2Opts[0])
  3137   std::bitset<0> bitset0;
  3140   std::bitset<9> rrCfgCommOptions;
  3144   if (rrCfgCommOptions[8])
  3150   std::bitset<1> prachConfigInfoPresent;
  3157   if (prachConfigInfoPresent[0])
  3163   if (rrCfgCommOptions[7])
  3204   if (rrCfgCommOptions[6])
  3210   if (rrCfgCommOptions[5])
  3216   if (rrCfgCommOptions[4])
  3222   if (rrCfgCommOptions[3])
  3228   if (rrCfgCommOptions[2])
  3234   if (rrCfgCommOptions[1])
  3240   if (rrCfgCommOptions[0])
  3254   std::bitset<0> bitset0;
  3260   std::bitset<1> preamblesGroupAConfigPresent;
  3319   if (preamblesGroupAConfigPresent[0])
  3432   std::bitset<0> bitset0;
  3450   std::bitset<1> prachConfigInfoPresent;
  3455   if (prachConfigInfoPresent[0])
  3543   std::bitset<4> measResultOptionalPresent;
  3566       int measResultNeighCellsChoice;
  3571       if (measResultNeighCellsChoice == 0)
  3577           for (
int i = 0; i < numElems; i++)
  3581               std::bitset<1> isCgiInfoPresent;
  3588               measResultEutra.
haveCgiInfo = isCgiInfoPresent[0];
  3589               if (isCgiInfoPresent[0])
  3591                   std::bitset<1> havePlmnIdentityList;
  3601                   std::bitset<28> cellId;
  3606                   std::bitset<16> trArCo;
  3611                   if (havePlmnIdentityList[0])
  3616                       for ( 
int j = 0; j < numPlmnElems; j++)
  3626               std::bitset<2> measResultOpts;
  3630               if (measResultOpts[1])
  3638               if (measResultOpts[0])
  3649       if (measResultNeighCellsChoice == 1)
  3655       if (measResultNeighCellsChoice == 2)
  3660       if (measResultNeighCellsChoice == 3)
  3671         for (
int i = 0; i < numElems; i++)
  3678             std::bitset<2> measResultScellPresent;
  3685                std::bitset<2> measResultOpts;
  3689                if (measResultOpts[1])
  3697                if (measResultOpts[0])
  3719   std::bitset<1> isMccPresent;
  3722   if (isMccPresent[0])
  3733   for (
int j = mncDigits - 1; j >= 0; j--)
  3736       mnc += 
n * pow (10,j);
  3749   std::bitset<0> bitset0;
  3750   std::bitset<2> bitset2;
  3751   std::bitset<11> bitset11;
  3760       int measObjectToRemoveListElems;
  3763       for (
int i = 0; i < measObjectToRemoveListElems; i++)
  3773       int measObjectToAddModListElems;
  3776       for (
int i = 0; i < measObjectToAddModListElems; i++)
  3785           int measObjectChoice;
  3788           switch (measObjectChoice)
  3808               std::bitset<5> measObjectEutraOpts;
  3829               if (measObjectEutraOpts[4])
  3835                   for (
int i = 0; i < numElems; i++)
  3842               if (measObjectEutraOpts[3])
  3848                   for (
int i = 0; i < numElems; i++)
  3869               if (measObjectEutraOpts[2])
  3875                   for (
int i = 0; i < numElems; i++)
  3883               if (measObjectEutraOpts[1])
  3889                   for (
int i = 0; i < numElems; i++)
  3898                       std::bitset<1> isRangePresent;
  3966               if (measObjectEutraOpts[0])
  3980       int reportConfigToRemoveListElems;
  3983       for (
int i = 0; i < reportConfigToRemoveListElems; i++)
  3993       int reportConfigToAddModListElems;
  3996       for (
int i = 0; i < reportConfigToAddModListElems; i++)
  4005           int reportConfigChoice;
  4008           if (reportConfigChoice == 0)
  4014               int triggerTypeChoice;
  4017               if (triggerTypeChoice == 0)
  4027                   switch (eventIdChoice)
  4121               if (triggerTypeChoice == 1)
  4248           if (reportConfigChoice == 1)
  4261       int measIdToRemoveListElems;
  4264       for (
int i = 0; i < measIdToRemoveListElems; i++)
  4274       int measIdToAddModListElems;
  4277       for (
int i = 0; i < measIdToAddModListElems; i++)
  4300       std::bitset<4> quantityConfigOpts;
  4303       if (quantityConfigOpts[3])
  4416       if (quantityConfigOpts[2])
  4421       if (quantityConfigOpts[1])
  4426       if (quantityConfigOpts[0])
  4437       int measGapConfigChoice;
  4439       switch (measGapConfigChoice)
  4450           int gapOffsetChoice;
  4452           switch (gapOffsetChoice)
  4486       int speedStateParsChoice;
  4488       switch (speedStateParsChoice)
  4566   m_mmec = std::bitset<8> (0ul);
  4567   m_mTmsi = std::bitset<32> (0ul);
  4569   m_spare = std::bitset<1> (0ul);
  4580   static TypeId tid = 
TypeId (
"ns3::RrcConnectionRequestHeader")
  4582     .SetGroupName(
"Lte")
  4590   os << 
"MMEC:" << 
m_mmec << std::endl;
  4591   os << 
"MTMSI:" << 
m_mTmsi << std::endl;
  4593   os << 
"Spare: " << 
m_spare << std::endl;
  4642   std::bitset<1> dummy;
  4643   std::bitset<0> optionalOrDefaultMask;
  4721   os << 
"radioResourceConfigDedicated:" << std::endl;
  4770   std::bitset<0> bitset0;
  4771   std::bitset<1> bitset1;
  4772   std::bitset<2> bitset2;
  4786   int criticalExtensionChoice;
  4788   if (criticalExtensionChoice == 1)
  4793   else if (criticalExtensionChoice == 0)
  4856 std::list<LteRrcSap::SrbToAddMod>
  4862 std::list<LteRrcSap::DrbToAddMod>
  4928   std::bitset<0> bitset0;
  5031   std::bitset<0> bitset0;
  5117   std::bitset<6> options;
  5136       std::bitset<4> mobCtrlIntoOptional;
  5139       mobCtrlIntoOptional.set (1,0); 
  5191         std::bitset<2> noncriticalExtension_v890;
  5192         noncriticalExtension_v890.set (1,0); 
  5199         std::bitset<3> noncriticalExtension_v920;
  5200         noncriticalExtension_v920.set (1,0); 
  5201         noncriticalExtension_v920.set (1,0); 
  5216   std::bitset<0> bitset0;
  5245       else if (c1Chosen == 0)
  5248           std::bitset<6> rrcConnRecOpts;
  5261               std::bitset<4> mobCtrlOpts;
  5272                   std::bitset<1> ulCarrierFreqPresent;
  5278                   if (ulCarrierFreqPresent[0])
  5289                   std::bitset<1> ulBandwidthPresent;
  5295                   if (ulBandwidthPresent[0])
  5312               std::bitset<16> cRnti;
  5331           if (rrcConnRecOpts[3])
  5344           if (rrcConnRecOpts[1])
  5371           os << 
"  measObjectToRemoveList: ";
  5373           std::list<uint8_t>::iterator it = auxList.begin ();
  5374           for (; it != auxList.end (); it++)
  5376               os << (int) *it << 
", ";
  5382           os << 
"  reportConfigToRemoveList: ";
  5384           std::list<uint8_t>::iterator it = auxList.begin ();
  5385           for (; it != auxList.end (); it++)
  5387               os << (int) *it << 
", ";
  5393           os << 
"  measIdToRemoveList: ";
  5395           std::list<uint8_t>::iterator it = auxList.begin ();
  5396           for (; it != auxList.end (); it++)
  5398               os << (int) *it << 
", ";
  5405           os << 
"  measObjectToAddMod: " << std::endl;
  5407           std::list<LteRrcSap::MeasObjectToAddMod>::iterator it = auxList.begin ();
  5408           for (; it != auxList.end (); it++)
  5410               os << 
"    measObjectId: " << (int)it->measObjectId << std::endl;
  5411               os << 
"    carrierFreq: " << (
int)it->measObjectEutra.carrierFreq << std::endl;
  5412               os << 
"    allowedMeasBandwidth: " <<  (int)it->measObjectEutra.allowedMeasBandwidth << std::endl;
  5413               os << 
"    presenceAntennaPort1: " <<  it->measObjectEutra.presenceAntennaPort1  << std::endl;
  5414               os << 
"    neighCellConfig: " << (
int) it->measObjectEutra.neighCellConfig  << std::endl;
  5415               os << 
"    offsetFreq: " <<  (int)it->measObjectEutra.offsetFreq  << std::endl;
  5418               if (!it->measObjectEutra.cellsToRemoveList.empty ())
  5420                   os << 
"    cellsToRemoveList: ";
  5421                   std::list<uint8_t> auxList = it->measObjectEutra.cellsToRemoveList;
  5422                   std::list<uint8_t>::iterator it = auxList.begin ();
  5423                   for (; it != auxList.end (); it++)
  5425                       os << (int) *it << 
", ";
  5430               if (!it->measObjectEutra.blackCellsToRemoveList.empty ())
  5432                   os << 
"    blackCellsToRemoveList: ";
  5433                   std::list<uint8_t> auxList = it->measObjectEutra.blackCellsToRemoveList;
  5434                   std::list<uint8_t>::iterator it = auxList.begin ();
  5435                   for (; it != auxList.end (); it++)
  5437                       os << (int) *it << 
", ";
  5442               if (!it->measObjectEutra.cellsToAddModList.empty ())
  5444                   os << 
"    cellsToAddModList: " << std::endl;
  5445                   std::list<LteRrcSap::CellsToAddMod> auxList = it->measObjectEutra.cellsToAddModList;
  5446                   std::list<LteRrcSap::CellsToAddMod>::iterator it = auxList.begin ();
  5447                   for (; it != auxList.end (); it++)
  5449                       os << 
"      cellIndex: " <<  (int)it->cellIndex << std::endl;
  5450                       os << 
"      physCellId: " <<  (
int)it->physCellId  << std::endl;
  5451                       os << 
"      cellIndividualOffset: " <<  (int)it->cellIndividualOffset << std::endl;
  5452                       os << 
"      ------ " << std::endl;
  5456               if (!it->measObjectEutra.blackCellsToAddModList.empty ())
  5458                   os << 
"    blackCellsToAddModList: " << std::endl;
  5459                   std::list<LteRrcSap::BlackCellsToAddMod> auxList = it->measObjectEutra.blackCellsToAddModList;
  5460                   std::list<LteRrcSap::BlackCellsToAddMod>::iterator it = auxList.begin ();
  5461                   for (; it != auxList.end (); it++)
  5463                       os << 
"      cellIndex: " <<  (int)it->cellIndex << std::endl;
  5464                       os << 
"      physCellIdRange.start: " <<  (
int)it->physCellIdRange.start  << std::endl;
  5465                       os << 
"      physCellIdRange.haveRange: " <<  it->physCellIdRange.haveRange << std::endl;
  5466                       os << 
"      physCellIdRange.range: " <<  (int)it->physCellIdRange.range << std::endl;
  5467                       os << 
"      ------ " << std::endl;
  5471               os << 
"    haveCellForWhichToReportCGI: " <<  it->measObjectEutra.haveCellForWhichToReportCGI  << std::endl;
  5472               os << 
"    cellForWhichToReportCGI: " <<  (int)it->measObjectEutra.cellForWhichToReportCGI  << std::endl;
  5473               os << 
"    ------------- " << std::endl;
  5480           os << 
"  reportConfigToAddModList: " << std::endl;
  5482           std::list<LteRrcSap::ReportConfigToAddMod>::iterator it = auxList.begin ();
  5483           for (; it != auxList.end (); it++)
  5485               os << 
"    reportConfigId: " << (int)it->reportConfigId << std::endl;
  5486               os << 
"    reportConfigEutra.triggerType  " <<  (
int)it->reportConfigEutra.triggerType << std::endl;
  5489                   os << 
"    reportConfigEutra.eventId  " <<  (int)it->reportConfigEutra.eventId << std::endl;
  5492                       os << 
"    reportConfigEutra.reportOnLeave  " <<  (int)it->reportConfigEutra.reportOnLeave << std::endl;
  5493                       os << 
"    reportConfigEutra.a3Offset  " <<  (
int)it->reportConfigEutra.a3Offset << std::endl;
  5497                       os << 
"    reportConfigEutra.threshold1.choice  " <<  (int)it->reportConfigEutra.threshold1.choice << std::endl;
  5498                       os << 
"    reportConfigEutra.threshold1.range  " <<  (
int)it->reportConfigEutra.threshold1.range << std::endl;
  5501                           os << 
"    reportConfigEutra.threshold2.choice  " <<  (int)it->reportConfigEutra.threshold2.choice << std::endl;
  5502                           os << 
"    reportConfigEutra.threshold2.range  " <<  (
int)it->reportConfigEutra.threshold2.range << std::endl;
  5505                   os << 
"    reportConfigEutra.hysteresis  " <<  (int)it->reportConfigEutra.hysteresis << std::endl;
  5506                   os << 
"    reportConfigEutra.timeToTrigger  " <<  (
int)it->reportConfigEutra.timeToTrigger << std::endl;
  5510                   os << 
"    reportConfigEutra.purpose  " <<  (int)it->reportConfigEutra.purpose << std::endl;
  5512               os << 
"    reportConfigEutra.triggerQuantity  " <<  (int)it->reportConfigEutra.triggerQuantity << std::endl;
  5513               os << 
"    reportConfigEutra.reportQuantity  " <<  (
int)it->reportConfigEutra.reportQuantity << std::endl;
  5514               os << 
"    reportConfigEutra.maxReportCells  " <<  (int)it->reportConfigEutra.maxReportCells << std::endl;
  5515               os << 
"    reportConfigEutra.reportInterval  " <<  (
int)it->reportConfigEutra.reportInterval << std::endl;
  5516               os << 
"    reportConfigEutra.reportAmount  " <<  (int)it->reportConfigEutra.reportAmount << std::endl;
  5522           os << 
"  measIdToAddModList: " << std::endl;
  5524           std::list<LteRrcSap::MeasIdToAddMod>::iterator it = auxList.begin ();
  5525           for (; it != auxList.end (); it++)
  5527               os << 
"    measId: " << (int)it->measId << std::endl;
  5528               os << 
"    measObjectId: " << (
int)it->measObjectId << std::endl;
  5529               os << 
"    reportConfigId: " << (int)it->reportConfigId << std::endl;
  5530               os << 
"    ------ " << std::endl;
  5693 std::list<LteRrcSap::SrbToAddMod> 
  5699 std::list<LteRrcSap::DrbToAddMod> 
  5743   std::bitset<4> handoverPrepInfoOpts;
  5744   handoverPrepInfoOpts.set (3,1); 
  5745   handoverPrepInfoOpts.set (2,0); 
  5746   handoverPrepInfoOpts.set (1,0); 
  5747   handoverPrepInfoOpts.set (0,0); 
  5801   std::bitset<0> bitset0;
  5809   int criticalExtensionsChosen;
  5812   if (criticalExtensionsChosen == 1)
  5817   else if (criticalExtensionsChosen == 0)
  5826       else if (c1Chosen == 0)
  5829           std::bitset<4> handoverPrepInfoOpts;
  5834           for (
int i = 0; i < 
n; i++)
  5840           if (handoverPrepInfoOpts[3])
  5857               std::bitset<16> cRnti;
  5872               std::bitset<8> systemFrameNumber;
  5876               std::bitset<10> spare;
  5893           if (handoverPrepInfoOpts[2])
  5898           if (handoverPrepInfoOpts[1])
  5903           if (handoverPrepInfoOpts[0])
  6014   std::bitset<0> bitset0;
  6039       std::bitset<16> cRnti;
  6049       std::bitset<16> shortMacI;
  6071       std::bitset<2> spare;
  6163   std::bitset<0> bitset0;
  6177   int criticalExtensionsChoice;
  6179   if (criticalExtensionsChoice == 1)
  6184   else if (criticalExtensionsChoice == 0)
  6197           std::bitset<1> nonCriticalExtensionPresent;
  6215   os << 
"RadioResourceConfigDedicated: " << std::endl;
  6283   std::bitset<0> bitset0;
  6297   int criticalExtensionsChoice;
  6299   if (criticalExtensionsChoice == 1)
  6304   else if (criticalExtensionsChoice == 0)
  6307       std::bitset<1> opts;
  6382   std::bitset<0> bitset0;
  6391   int criticalExtensionsChoice;
  6393   if (criticalExtensionsChoice == 1)
  6398   else if (criticalExtensionsChoice == 0)
  6401       std::bitset<1> opts;
  6476   std::bitset<0> bitset0;
  6490   int criticalExtensionsChoice;
  6492   if (criticalExtensionsChoice == 1)
  6497   else if (criticalExtensionsChoice == 0)
  6506           std::bitset<3> opts;
  6598   std::bitset<0> bitset0;
  6608   int criticalExtensionsChoice;
  6610   if (criticalExtensionsChoice == 1)
  6615   else if (criticalExtensionsChoice == 0)
  6625       else if (c1Choice == 0)
  6628           std::bitset<1> opts;
  6708   std::bitset<0> bitset0;
  6714   int criticalExtensionsChoice;
  6717   if (criticalExtensionsChoice == 1)
  6722   else if (criticalExtensionsChoice == 0)
  6735           std::bitset<1> isNonCriticalExtensionPresent;
  6741           if (isNonCriticalExtensionPresent[0])
  6764       std::list<LteRrcSap::MeasResultEutra>::iterator it = measResultListEutra.begin ();
  6765       for (; it != measResultListEutra.end (); it++)
  6767           os << 
"   physCellId =" << (int) it->physCellId << std::endl;
  6768           os << 
"   haveCgiInfo =" << it->haveCgiInfo << std::endl;
  6769           if (it->haveCgiInfo)
  6771               os << 
"      plmnIdentity = " << (int) it->cgiInfo.plmnIdentity << std::endl;
  6772               os << 
"      cellIdentity = " << (
int) it->cgiInfo.cellIdentity << std::endl;
  6773               os << 
"      trackingAreaCode = " << (int) it->cgiInfo.trackingAreaCode << std::endl;
  6774               os << 
"      havePlmnIdentityList = " << !it->cgiInfo.plmnIdentityList.empty () << std::endl;
  6775               if (!it->cgiInfo.plmnIdentityList.empty ())
  6777                   for (std::list<uint32_t>::iterator it2 = it->cgiInfo.plmnIdentityList.begin (); it2 != it->cgiInfo.plmnIdentityList.end (); it2++)
  6779                       os << 
"         plmnId : " << *it2 << std::endl;
  6784           os << 
"   haveRsrpResult =" << it->haveRsrpResult << std::endl;
  6785           if (it->haveRsrpResult)
  6787               os << 
"   rsrpResult =" << (int) it->rsrpResult << std::endl;
  6790           os << 
"   haveRsrqResult =" << it->haveRsrqResult << std::endl;
  6791           if (it->haveRsrqResult)
  6793               os << 
"   rsrqResult =" << (int) it->rsrqResult << std::endl;
  6834   std::cout << 
"UL DCCH MSG TYPE: " << 
m_messageType << std::endl;
  6846   std::bitset<0> bitset0;
  6895   std::cout << 
"DL DCCH MSG TYPE: " << 
m_messageType << std::endl;
  6907   std::bitset<0> bitset0;
  6956   std::cout << 
"UL CCCH MSG TYPE: " << 
m_messageType << std::endl;
  6968   std::bitset<0> bitset0;
  7017   std::cout << 
"DL CCCH MSG TYPE: " << 
m_messageType << std::endl;
  7029   std::bitset<0> bitset0;
 
uint32_t sCellIndex
SCell index. 
bool haveRange
has a range? 
RrcConnectionRequest structure. 
enum ns3::LteRrcSap::ReportConfigEutra::@67 reportQuantity
Report type enumeration. 
SystemInformationBlockType2 sourceSystemInformationBlockType2
source system information block type 2 
PhysicalConfigDedicated structure. 
enum ns3::LteRrcSap::ThresholdEutra::@63 choice
Threshold enumeration. 
bool haveNonCriticalExtension
have critical extension? 
void Print(std::ostream &os) const
This function prints the object, for debugging purposes. 
LteRrcSap::HandoverPreparationInfo GetMessage() const
Returns a HandoverPreparationInfo IE from the values in the class attributes. 
uint32_t carrierFreq
carrier frequency 
CellIdentification structure. 
uint8_t drbIdentity
DRB identity. 
RadioResourceConfigCommonSCell radioResourceConfigCommonSCell
radio resource config common SCell 
CarrierFreqEutra carrierFreq
carrier frequency 
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
PdschConfigDedicated pdschConfigDedicated
PDSCH config dedicated. 
uint16_t physCellId
Phy cell ID. 
MeasurementReport structure. 
uint32_t Deserialize(Buffer::Iterator bIterator)
uint8_t measObjectId
measure object ID 
PhysCellIdRange physCellIdRange
Phy cell ID range. 
PdschConfigDedicated pdschConfigDedicated
PDSCH config dedicated. 
MeasConfig sourceMeasConfig
source measure config 
uint32_t sourceDlCarrierFreq
source DL carrier frequency 
uint8_t srbIdentity
SB identity. 
Buffer::Iterator DeserializeUlCcchMessage(Buffer::Iterator bIterator)
Deserialize DL CCCH message function. 
MobilityControlInfo structure. 
void Print(std::ostream &os) const
This function prints the object, for debugging purposes. 
uint8_t cellIndex
cell index 
std::list< MeasObjectToAddMod > measObjectToAddModList
measure object to add mod list 
uint8_t numberOfRaPreambles
number of RA preambles 
Event A3: Neighbour becomes amount of offset better than PCell. 
RadioResourceConfigCommon structure. 
SoundingRsUlConfigDedicated soundingRsUlConfigDedicated
sounding RS UL config dedicated 
bool presenceAntennaPort1
antenna port 1 present? 
uint8_t hysteresis
Parameter used within the entry and leave condition of an event triggered reporting condition...
std::list< CellsToAddMod > cellsToAddModList
cells to add mod list 
RSRP is used for the threshold. 
QuantityConfig quantityConfig
quantity config 
std::list< uint8_t > reportConfigToRemoveList
report config to remove list 
RlcConfig rlcConfig
RLC config. 
uint8_t rsrpResult
RSRP result. 
std::list< MeasResultEutra > measResultListEutra
measure result list eutra 
uint8_t reportConfigId
report config ID 
HandoverPreparationInfoHeader()
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5. 
 automatically resized byte buffer 
RadioResourceConfigDedicatedSCell radioResourceConfigDedicateSCell
radio resource config dedicated SCell 
uint32_t Deserialize(Buffer::Iterator bIterator)
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
std::list< SrbToAddMod > srbToAddModList
SRB to add mod list. 
enum ns3::LteRrcSap::ReportConfigEutra::report purpose
purpose 
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
std::list< uint8_t > measObjectToRemoveList
measure object to remove list 
bool haveNonUlConfiguration
have non UL configuration? 
uint16_t start
starting cell ID 
uint8_t tEvaluation
evaluation 
PdschConfigCommon pdschConfigCommon
4: Physical configuration, physical channels pdsch-ConfigCommon-r10 
uint16_t srsConfigIndex
SRS config index. 
MeasObjectEutra measObjectEutra
measure object eutra 
uint16_t sourceUeIdentity
source UE identity 
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate. 
TxFailParam txFailParam
txFailParams 
bool haveCarrierFreq
have carrier frequency? 
enum ns3::LteRrcSap::ReportConfigEutra::@66 triggerQuantity
Trigger type enumeration. 
uint8_t neighCellConfig
neighbor cell config 
RachConfigDedicated rachConfigDedicated
RACH config dedicated. 
bool haveSmeasure
have S measure? 
Reference Signal Received Quality. 
MeasConfig measConfig
measure config 
uint8_t rrcTransactionIdentifier
RRC transaction identifier. 
uint32_t cellIdentity
cell identity 
uint8_t rsrpResult
the RSRP result 
uint8_t waitTime
wait time 
uint32_t ulCarrierFreq
UL carrier frequency. 
bool haveRsrqResult
have RSRQ result? 
uint32_t Deserialize(Buffer::Iterator bIterator)
iterator in a Buffer instance 
bool haveRadioResourceConfigDedicated
have radio resource config dedicated 
LteRrcSap::AsConfig m_asConfig
AS config. 
bool havePdschConfigDedicated
have PDSCH config dedicated? 
bool haveNonUlConfiguration
have non UL configuration? 
LteRrcSap::AsConfig GetAsConfig() const
Getter for m_asConfig. 
Buffer::Iterator DeserializeDlCcchMessage(Buffer::Iterator bIterator)
Deserialize DL CCCH message function. 
uint16_t trackingAreaCode
tracking area code 
std::list< BlackCellsToAddMod > blackCellsToAddModList
black cells to add mod list 
Buffer::Iterator DeserializeDlDcchMessage(Buffer::Iterator bIterator)
Deserialize DL DCCH message function. 
AsConfig asConfig
AS config. 
SystemInformationBlockType1 sourceSystemInformationBlockType1
source system information block type 1 
uint8_t rrcTransactionIdentifier
RRC transaction identifier. 
PreambleInfo preambleInfo
preamble info 
uint8_t rsrpResult
RSRP result. 
CellIdentification cellIdentification
cell identification 
bool haveUlConfiguration
have UL configuration 
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer. 
AntennaInfoCommon antennaInfoCommon
2: Physical configuration, general antennaInfoCommon-r10 
enum ns3::LteRrcSap::MeasGapConfig::gap gapOffsetChoice
gap offset 
PhysicalConfigDedicatedSCell structure. 
uint8_t preambleTransMax
preamble transmit maximum 
MeasResults measResults
measure results 
FreqInfo ulFreqInfo
UL frequency info. 
MeasResultScell structure. 
uint8_t epsBearerIdentity
EPS bearer identity. 
uint8_t tHystNormal
hyst normal 
UlPowerControlCommonSCell ulPowerControlCommonSCell
3GPP TS 36.331 v.11.10 R11 pag.223 
uint64_t ueIdentity
UE identity. 
int8_t referenceSignalPower
INTEGER (-60..50),. 
enum ns3::LteRrcSap::SpeedStatePars::action type
action type 
RrcConnectionReestablishment structure. 
LogicalChannelConfig logicalChannelConfig
logical channel config 
RachConfigCommon rachConfigCommon
RACH config common. 
void SerializeDlDcchMessage(int msgType) const
Serialize DL DCCH message function. 
ReportConfigEutra reportConfigEutra
report config eutra 
uint8_t rsrqResult
the RSRQ result 
uint8_t logicalChannelGroup
logical channel group 
void Print(std::ostream &os) const
This function prints the object, for debugging purposes. 
void Print(std::ostream &os) const
This function prints the object, for debugging purposes. 
bool haveMeasurementResultsNeighCell
always false since not implemented 
std::list< uint32_t > plmnIdentityList
PLMN identity list. 
NonUlConfiguration nonUlConfiguration
non UL configuration 
uint8_t nCellChangeHigh
cell change high 
bool haveRadioResourceConfigDedicatedSCell
have radio resource config dedicated SCell? 
uint8_t rrcTransactionIdentifier
RRC transaction identifier. 
uint8_t sMeasure
S measure. 
Event A5: PCell becomes worse than absolute threshold1 AND Neighbour becomes better than another abso...
uint32_t dlCarrierFreq
ARFCN - valueEUTRA. 
bool haveMeasGapConfig
have measure gap config? 
MeasResultEutra structure. 
std::list< MeasResultScell > measResultScell
measure results Scells 
uint16_t alpha
alpha value 
RrcConnectionReconfiguration structure. 
std::list< MeasIdToAddMod > measIdToAddModList
measure ID to add mod list 
uint8_t srsBandwidth
SRS bandwidth. 
bool haveRachConfigDedicated
Have RACH config dedicated? 
uint8_t raPrachMaskIndex
RA PRACH mask index. 
uint8_t rrcTransactionIdentifier
RRC transaction identifier. 
PhysicalConfigDedicated physicalConfigDedicated
physical config dedicated 
uint8_t filterCoefficientRSRP
filter coefficient RSRP 
bool haveRsrpResult
have RSRP result? 
RrcConnectionReconfigurationCompleted structure. 
MeasResultServFreqList measScellResultList
measure SCell result list 
enum ns3::LteRrcSap::ReportConfigEutra::@68 reportInterval
Report interval enumeration. 
bool haveAntennaInfoUlDedicated
have antenna info UL dedicated? 
enum ns3::LteRrcSap::ReportConfigEutra::@65 eventId
Event enumeration. 
std::list< SCellToAddMod > sCellsToAddModList
SCell to add mod list. 
bool haveRsrpResult
have RSRP result 
MeasIdToAddMod structure. 
uint8_t rrcTransactionIdentifier
RRC transaction identifier. 
MobilityStateParameters mobilityStateParameters
mobility state parameters 
PrachConfigSCell prachConfigSCell
PRACH config SCell. 
RrcConnectionSetupCompleted structure. 
HandoverPreparationInfo structure. 
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated 
RrcConnectionSetup structure. 
uint8_t rrcTransactionIdentifier
RRC transaction identifier. 
RadioResourceConfigCommonSib structure. 
RrcConnectionReestablishmentRequest structure. 
uint8_t raPreambleIndex
RA preamble index. 
RadioResourceConfigDedicated sourceRadioResourceConfig
source radio resource config 
uint8_t reportConfigId
report config ID 
uint16_t cellForWhichToReportCGI
cell for which to report CGI 
uint16_t servFreqId
service frequency ID 
bool reportOnLeave
Indicates whether or not the UE shall initiate the measurement reporting procedure when the leaving c...
uint16_t physCellId
Phy cell ID. 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
bool haveQuantityConfig
have quantity config? 
uint16_t targetPhysCellId
target Phy cell ID 
RrcConnectionReject structure. 
PhysicalConfigDedicatedSCell physicalConfigDedicatedSCell
physical config dedicated SCell 
uint8_t rrcTransactionIdentifier
RRC transaction identifier. 
bool haveMobilityControlInfo
have mobility control info 
void SerializeUlCcchMessage(int msgType) const
Serialize UL CCCH message function. 
uint16_t prioritizedBitRateKbps
prioritized bit rate Kbps 
uint8_t connEstFailCount
Number of times that the UE detects T300 expiry on the same cell. 
uint32_t Deserialize(Buffer::Iterator bIterator)
uint8_t maxReportCells
Maximum number of cells, excluding the serving cell, to be included in the measurement report...
ReestablishmentCause
ReestablishmentCause enumeration. 
int8_t cellIndividualOffset
cell individual offset 
void SerializeDlCcchMessage(int msgType) const
Serialize DL CCCH message function. 
Reference Signal Received Power. 
RadioResourceConfigDedicated radioResourceConfigDedicated
radio resource config dedicated 
bool haveMeasResultNeighCells
have measure result neighbor cells 
uint16_t dlBandwidth
1: Cell characteristics 
uint32_t physCellId
physical cell ID 
uint8_t filterCoefficientRSRQ
filter coefficient RSRQ 
bool havePdschConfigDedicated
have PDSCH config dedicated? 
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer. 
uint8_t logicalChannelIdentity
logical channel identify 
uint8_t sfHigh
scale factor high 
uint16_t newUeIdentity
new UE identity 
MeasGapConfig measGapConfig
measure gap config 
RachConfigCommon structure. 
uint8_t range
Value range used in RSRP/RSRQ threshold. 
bool havePhysicalConfigDedicated
have physical config dedicated? 
bool haveCgiInfo
have CGI info? 
uint8_t ulBandwidth
UL bandwidth. 
uint8_t reportAmount
Number of measurement reports applicable, always assumed to be infinite. 
bool haveSoundingRsUlConfigDedicated
have sounding RS UL config dedicated? 
RrcConnectionReestablishmentReject structure. 
void Print(std::ostream &os) const
This function prints the object, for debugging purposes. 
BlackCellsToAddMod structure. 
uint8_t measObjectId
measure object ID 
void SetMessage(LteRrcSap::HandoverPreparationInfo msg)
Receives a HandoverPreparationInfo IE and stores the contents into the class attributes. 
uint8_t gapOffsetValue
gap offset value 
uint16_t physCellId
Phy cell ID. 
RadioResourceConfigCommon radioResourceConfigCommon
radio resource config common 
uint32_t plmnIdentity
PLMN identity. 
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer. 
uint32_t dlCarrierFreq
DL carrier frequency. 
CarrierBandwidthEutra carrierBandwidth
carrier bandwidth 
int8_t a3Offset
Offset value for Event A3. An integer between -30 and 30. The actual value is (value * 0...
bool haveUlConfiguration
have UL configuration? 
LogicalChannelConfig logicalChannelConfig
logical channel config 
RachConfigCommon rachConfigCommon
RACH config common. 
SpeedStatePars speedStatePars
speed state parameters 
uint8_t raResponseWindowSize
RA response window size. 
ReestabUeIdentity structure. 
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer. 
bool haveCarrierBandwidth
have carrier bandwidth? 
bool haveAntennaInfoDedicated
have antenna info dedicated? 
uint8_t ulBandwidth
UL bandwidth. 
uint8_t rsrqResult
RSRQ result. 
uint32_t Deserialize(Buffer::Iterator bIterator)
std::list< uint8_t > blackCellsToRemoveList
black cells to remove list 
NonCriticalExtensionConfiguration nonCriticalExtension
3GPP TS 36.331 v.11.10 R11 Sec. 6.2.2 pag. 147 (also known as ETSI TS 136 331 v.11.10 Feb-2015) 
Both the RSRP and RSRQ quantities are to be included in the measurement report. 
RadioResourceConfigDedicatedSCell structure. 
int8_t pb
INTEGER (0..3),. 
void PreSerialize() const
This function serializes class attributes to m_serializationResult local Buffer. 
bool haveSpeedStatePars
have speed state parameters? 
bool haveSoundingRsUlConfigDedicated
have sounding RS UL config dedicated? 
uint8_t allowedMeasBandwidth
allowed measure bandwidth 
uint8_t cellIndex
cell index 
std::list< DrbToAddMod > drbToAddModList
DRB to add mod list. 
enum ns3::LteRrcSap::SoundingRsUlConfigDedicated::action type
action type 
int8_t offsetFreq
offset frequency 
bool haveAntennaInfoDedicated
have antenna info dedicated? 
RrcConnectionReestablishmentComplete structure. 
uint8_t transmissionMode
transmission mode 
enum ns3::LteRrcSap::RlcConfig::direction choice
direction choice 
void SerializeUlDcchMessage(int msgType) const
Serialize UL DCCH message function. 
Event A1: Serving becomes better than absolute threshold. 
enum ns3::LteRrcSap::MeasGapConfig::action type
action type 
RSRQ is used for the threshold. 
MobilityControlInfo mobilityControlInfo
mobility control info 
bool haveMeasConfig
have measure config 
Event A4: Neighbour becomes better than absolute threshold. 
bool haveRsrqResult
have RSRQ result? 
AntennaInfoDedicated antennaInfo
antenna info 
uint32_t plmnIdentity
PLMN identity. 
std::list< uint8_t > cellsToRemoveList
cells to remove list 
uint8_t rsrqResult
RSRQ result. 
ReestablishmentCause reestablishmentCause
reestablishment cause 
uint8_t dlBandwidth
DL bandwidth. 
NonCriticalExtensionConfiguration structure. 
RrcConnectionRelease structure. 
SoundingRsUlConfigDedicated soundingRsUlConfigDedicated
sounding RS UL config dedicated 
uint8_t sfMedium
scale factor medium 
LogicalChannelConfig structure. 
uint16_t timeToTrigger
Time during which specific criteria for the event needs to be met in order to trigger a measurement r...
uint16_t bucketSizeDurationMs
bucket size duration ms 
UlConfiguration ulConfiguration
UL configuration. 
Event A2: Serving becomes worse than absolute threshold. 
Threshold for event evaluation. 
This class only serves to discriminate which message type has been received in uplink (ue to eNb) for...
std::list< uint8_t > measIdToRemoveList
measure ID to remove list 
a unique identifier for an interface. 
std::list< ReportConfigToAddMod > reportConfigToAddModList
report config to add mod list 
ReportConfigToAddMod structure. 
ReestabUeIdentity ueIdentity
UE identity. 
TypeId SetParent(TypeId tid)
Set the parent TypeId. 
std::list< uint8_t > drbToReleaseList
DRB to release list. 
Buffer::Iterator DeserializeUlDcchMessage(Buffer::Iterator bIterator)
Deserialize UL DCCH message function. 
MeasObjectToAddMod structure. 
SpeedStateScaleFactors timeToTriggerSf
time to trigger scale factors 
uint16_t antennaPortsCount
antenna ports count 
RaSupervisionInfo raSupervisionInfo
RA supervision info. 
uint8_t nCellChangeMedium
cell change medium 
bool haveScellsMeas
has SCells measure 
AntennaInfoDedicated antennaInfo
antenna info dedicated 
bool haveMeasurementResultsServingSCells
have measure results serving Scells 
RadioResourceConfigCommonSCell. 
RadioResourceConfigDedicated structure. 
uint32_t ulCarrierFreq
UL carrier frequency. 
MasterInformationBlock sourceMasterInformationBlock
source master information block 
enum ns3::LteRrcSap::ReportConfigEutra::@64 triggerType
Trigger enumeration. 
bool haveCellForWhichToReportCGI
have cell for which to report CGI? 
AntennaInfoDedicated antennaInfoUl
antenna info UL 
ThresholdEutra threshold2
Threshold for event A5.