src/lte/model/lte-ue-rrc.h
changeset 9995 32e393c01fdb
parent 9986 d1c0357a227f
child 10063 6b30859ebd37
--- a/src/lte/model/lte-ue-rrc.h	Fri Mar 01 09:33:18 2013 +0100
+++ b/src/lte/model/lte-ue-rrc.h	Fri Mar 01 20:53:54 2013 +0100
@@ -31,6 +31,7 @@
 #include <ns3/traced-callback.h>
 
 #include <map>
+#include <set>
 
 namespace ns3 {
 
@@ -259,6 +260,8 @@
  
   // internal methods
   void ApplyRadioResourceConfigDedicated (LteRrcSap::RadioResourceConfigDedicated rrcd);
+  void ApplyMeasConfig (LteRrcSap::MeasConfig mc);
+  void SendMeasurementReport (uint8_t measId);
   void StartConnection ();
   void LeaveConnectedMode ();
   void DisposeOldSrb1 ();
@@ -320,6 +323,47 @@
   bool m_receivedMib; /**< true if MIB was received for the current cell  */
   bool m_receivedSib2; /**< true if SIB2 was received for the current cell  */
 
+
+  /**
+   * Includes the accumulated configuration of the measurements to be
+   * performed by the UE, see TS 36.331 section 7.1. Also note that some
+   * optional variables in the specs are omitted.
+   * 
+   */
+  struct VarMeasConfig
+  {
+    std::map<uint8_t, LteRrcSap::MeasIdToAddMod>   measIdList;
+    std::map<uint8_t, LteRrcSap::MeasObjectToAddMod> measObjectList;
+    std::map<uint8_t, LteRrcSap::ReportConfigToAddMod> reportConfigList;
+    LteRrcSap::QuantityConfig quantityConfig; 
+    double aRsrp;
+    double aRsrq;
+  };
+  
+  struct VarMeasReport
+  {
+    uint8_t measId;
+    std::set<uint16_t> cellsTriggeredList; // note: only EUTRA is
+                                            // supported
+    uint32_t numberOfReportsSent;
+    EventId periodicReportTimer;
+  };
+  
+  VarMeasConfig m_varMeasConfig;
+  //       measId
+  std::map<uint8_t, VarMeasReport> m_varMeasReportList;
+  
+  struct MeasValues
+  {
+    double rsrp;
+    double rsrq;
+    Time timestamp;
+  };
+
+  /////////cellId
+  std::map<uint16_t, MeasValues> m_storedMeasValues;
+  
+
 };