src/lte/model/enb-net-device.h
changeset 7886 b65c16d4da83
parent 6852 8f1a53d3f6ca
--- a/src/lte/model/enb-net-device.h	Wed Mar 09 16:51:58 2011 -0800
+++ b/src/lte/model/enb-net-device.h	Thu Mar 10 18:15:26 2011 +0100
@@ -16,6 +16,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * Author: Giuseppe Piro  <g.piro@poliba.it>
+ * Author: Marco Miozzo <marco.miozzo@cttc.es> : Update to FF API Architecture
  */
 
 #ifndef ENB_NET_DEVICE_H
@@ -36,9 +37,10 @@
 class PacketBurst;
 class Node;
 class LtePhy;
-class UeManager;
-class UeNetDevice;
-class EnbMacEntity;
+class EnbLtePhy;
+class LteEnbMac;
+class LteEnbRrc;
+class RrFfMacScheduler;
 
 
 /**
@@ -55,7 +57,7 @@
    * \param node the network node
    * \param phy the physical object attache dto it
    */
-  EnbNetDevice (Ptr<Node> node, Ptr<LtePhy> phy);
+  EnbNetDevice (Ptr<Node> node, Ptr<EnbLtePhy> phy);
 
   virtual ~EnbNetDevice (void);
   virtual void DoDispose (void);
@@ -66,51 +68,18 @@
   void InitEnbNetDevice (void);
 
   /**
-   * \brief Starts the run of this device 
-   */
-  void Start (void);
-  /**
-   * \brief Stops the run of this device 
+   * \return a pointer to the MAC 
    */
-  void Stop (void);
-
-  /**
-   * \brief Set the UE manager
-   * \param m the UE manager
-   */
-  void SetUeManager (Ptr<UeManager> m);
-  /**
-   * \brief Get the UE manager
-   * \return the pointer to the UE manager
-   */
-  Ptr<UeManager> GetUeManager (void);
+  Ptr<LteEnbMac> GetMac (void);
 
   /**
-   * \brief Set the MAC entity
-   * \param m the MAC entity
+   * \return a pointer to the physical layer.
    */
-  void SetMacEntity (Ptr<EnbMacEntity> m);
-  /**
-   * \brief Get the MAC entity
-   * \return the pointer to the MAC entity
-   */
-  Ptr<EnbMacEntity> GetMacEntity (void);
+  Ptr<EnbLtePhy> GetPhy (void) const;
 
 
-  /**
-   * \brief Start packet transmission.
-   * This functipon will called at the end of downlink scheduling
-   * to start the transmission of the burst of packet created by the
-   * packet-scheduler.
-   */
-  void StartTransmission (void);
 
-  /**
-   * \brief Send a pachet burst to the physical layer
-   * \param p the packet burst
-   * \return
-   */
-  bool SendPacket (Ptr<PacketBurst> p);
+  Ptr<LteEnbRrc> GetRrc ();
 
   /**
    * \brief Send the PDCCH ideal mesages under an
@@ -119,6 +88,11 @@
   void SendIdealPdcchMessage (void);
 
 
+  /** 
+   * 
+   * \return the Cell Identifier of this eNB
+   */
+  uint16_t GetCellId ();
 
 private:
   bool DoSend (Ptr<Packet> packet,
@@ -128,9 +102,19 @@
 
   void DoReceive (Ptr<Packet> p);
 
-  Ptr<UeManager> m_ueManager;
+  // Ptr<UeManager> m_ueManager;
+
+  Ptr<LteEnbMac> m_mac;
+
+  Ptr<EnbLtePhy> m_phy;
 
-  Ptr<EnbMacEntity> m_macEntity;
+  Ptr<LteEnbRrc> m_rrc;
+
+  Ptr<RrFfMacScheduler> m_scheduler;
+
+  uint16_t m_cellId; /**< Cell Identifer. Part of the CGI, see TS 29.274, section 8.21.1  */ 
+
+  static uint16_t m_cellIdCounter; 
 };
 
 } // namespace ns3