Add X2 primitive for UE data forwarding
authorManuel Requena <manuel.requena@cttc.es>
Fri, 14 Dec 2012 13:22:47 +0100
changeset 9552 f2f0aad583d9
parent 9488 3e4545c949d1
child 9553 ec2c02fa48f5
Add X2 primitive for UE data forwarding
src/lte/model/epc-x2-sap.h
--- a/src/lte/model/epc-x2-sap.h	Fri Dec 07 11:56:53 2012 +0100
+++ b/src/lte/model/epc-x2-sap.h	Fri Dec 14 13:22:47 2012 +0100
@@ -315,6 +315,20 @@
     std::vector <CellMeasurementResultItem> cellMeasurementResultList;
   };
 
+  /**
+   * \brief Parameters of the UE DATA primitive
+   *
+   * Forward UE data during the handover procedure from source eNB (sourceCellId)
+   * to target eNB (targetCellId) using a GTP-U tunnel (gtpTeid)
+   */
+  struct UeDataParams
+  {
+    uint16_t    sourceCellId;
+    uint16_t    targetCellId;
+    uint32_t    gtpTeid;
+    Ptr<Packet> ueData;
+  };
+
 };
 
 
@@ -344,6 +358,8 @@
   virtual void SendLoadInformation (LoadInformationParams params) = 0;
 
   virtual void SendResourceStatusUpdate (ResourceStatusUpdateParams params) = 0;
+
+  virtual void SendUeData (UeDataParams params) = 0;
 };
 
 
@@ -373,6 +389,8 @@
   virtual void RecvLoadInformation (LoadInformationParams params) = 0;
   
   virtual void RecvResourceStatusUpdate (ResourceStatusUpdateParams params) = 0;
+
+  virtual void RecvUeData (UeDataParams params) = 0;
 };
 
 ///////////////////////////////////////
@@ -401,6 +419,8 @@
 
   virtual void SendResourceStatusUpdate (ResourceStatusUpdateParams params);
 
+  virtual void SendUeData (UeDataParams params);
+
 private:
   EpcX2SpecificEpcX2SapProvider ();
   C* m_x2;
@@ -466,6 +486,13 @@
   m_x2->DoSendResourceStatusUpdate (params);
 }
 
+template <class C>
+void
+EpcX2SpecificEpcX2SapProvider<C>::SendUeData (UeDataParams params)
+{
+  m_x2->DoSendUeData (params);
+}
+
 ///////////////////////////////////////
 
 template <class C>
@@ -492,6 +519,8 @@
 
   virtual void RecvResourceStatusUpdate (ResourceStatusUpdateParams params);
 
+  virtual void RecvUeData (UeDataParams params);
+
 private:
   EpcX2SpecificEpcX2SapUser ();
   C* m_rrc;
@@ -557,6 +586,13 @@
   m_rrc->DoRecvResourceStatusUpdate (params);
 }
 
+template <class C>
+void
+EpcX2SpecificEpcX2SapUser<C>::RecvUeData (UeDataParams params)
+{
+  m_rrc->DoRecvUeData (params);
+}
+
 } // namespace ns3
 
 #endif // EPC_X2_SAP_H