From fe610d847716065efc5043ea439943a40e044c99 Mon Sep 17 00:00:00 2001 From: Manuel Requena Date: Wed, 22 Jun 2011 11:48:13 +0200 Subject: [PATCH] New design of the MAC SAP --- src/lte/model/lte-enb-mac.cc | 38 ++---------------------------------- src/lte/model/lte-enb-mac.h | 2 +- src/lte/model/lte-mac-sap.cc | 5 ++++- src/lte/model/lte-mac-sap.h | 38 +++++++++++++++++++++++++++++++++++- 4 files changed, 44 insertions(+), 39 deletions(-) diff --git a/src/lte/model/lte-enb-mac.cc b/src/lte/model/lte-enb-mac.cc index e4b070fb2..46367be1f 100644 --- a/src/lte/model/lte-enb-mac.cc +++ b/src/lte/model/lte-enb-mac.cc @@ -33,6 +33,7 @@ #include #include +#include "ns3/lte-mac-sap.h" NS_LOG_COMPONENT_DEFINE ("LteEnbMac"); @@ -103,41 +104,6 @@ EnbMacMemberLteEnbCmacSapProvider::ReleaseLc (uint16_t rnti, uint8_t lcid) -class EnbMacMemberLteMacSapProvider : public LteMacSapProvider -{ -public: - EnbMacMemberLteMacSapProvider (LteEnbMac* mac); - - // inherited from LteMacSapProvider - virtual void TransmitPdu (TransmitPduParameters params); - virtual void ReportBufferStatus (ReportBufferStatusParameters params); - -private: - LteEnbMac* m_mac; -}; - - -EnbMacMemberLteMacSapProvider::EnbMacMemberLteMacSapProvider (LteEnbMac* mac) - : m_mac (mac) -{ -} - -void -EnbMacMemberLteMacSapProvider::TransmitPdu (TransmitPduParameters params) -{ - m_mac->DoTransmitPdu (params); -} - - -void -EnbMacMemberLteMacSapProvider::ReportBufferStatus (ReportBufferStatusParameters params) -{ - m_mac->DoReportBufferStatus (params); -} - - - - class EnbMacMemberFfMacSchedSapUser : public FfMacSchedSapUser { public: @@ -314,7 +280,7 @@ LteEnbMac::GetTypeId (void) LteEnbMac::LteEnbMac () { NS_LOG_FUNCTION (this); - m_macSapProvider = new EnbMacMemberLteMacSapProvider (this); + m_macSapProvider = new EnbMacMemberLteMacSapProvider (this); m_cmacSapProvider = new EnbMacMemberLteEnbCmacSapProvider (this); m_schedSapUser = new EnbMacMemberFfMacSchedSapUser (this); m_cschedSapUser = new EnbMacMemberFfMacCschedSapUser (this); diff --git a/src/lte/model/lte-enb-mac.h b/src/lte/model/lte-enb-mac.h index 9483df6ad..b0de371db 100644 --- a/src/lte/model/lte-enb-mac.h +++ b/src/lte/model/lte-enb-mac.h @@ -48,7 +48,7 @@ class PdcchMapIdealControlMessage; class LteEnbMac : public Object { friend class EnbMacMemberLteEnbCmacSapProvider; - friend class EnbMacMemberLteMacSapProvider; + friend class EnbMacMemberLteMacSapProvider; friend class EnbMacMemberFfMacSchedSapUser; friend class EnbMacMemberFfMacCschedSapUser; friend class EnbMacMemberLteEnbPhySapUser; diff --git a/src/lte/model/lte-mac-sap.cc b/src/lte/model/lte-mac-sap.cc index c095eeb65..d63199802 100644 --- a/src/lte/model/lte-mac-sap.cc +++ b/src/lte/model/lte-mac-sap.cc @@ -19,7 +19,7 @@ */ -#include "lte-mac-sap.h" +#include "ns3/lte-mac-sap.h" namespace ns3 { @@ -33,4 +33,7 @@ LteMacSapUser::~LteMacSapUser () { } + + + } // namespace ns3 diff --git a/src/lte/model/lte-mac-sap.h b/src/lte/model/lte-mac-sap.h index 519071af3..0fb620e01 100644 --- a/src/lte/model/lte-mac-sap.h +++ b/src/lte/model/lte-mac-sap.h @@ -46,7 +46,7 @@ public: { Ptr pdu; /**< the RLC PDU */ uint16_t rnti; /**< the C-RNTI identifying the UE */ - uint8_t lcid; /**< the logical channel id corresponding to the sendingx RLC instance */ + uint8_t lcid; /**< the logical channel id corresponding to the sending RLC instance */ }; /** @@ -119,6 +119,42 @@ public: }; +/////////////////////////////////////// + +template +class EnbMacMemberLteMacSapProvider : public LteMacSapProvider +{ +public: + EnbMacMemberLteMacSapProvider (C* mac); + + // inherited from LteMacSapProvider + virtual void TransmitPdu (TransmitPduParameters params); + virtual void ReportBufferStatus (ReportBufferStatusParameters params); + +private: + C* m_mac; +}; + + +template +EnbMacMemberLteMacSapProvider::EnbMacMemberLteMacSapProvider (C* mac) + : m_mac (mac) +{ +} + +template +void EnbMacMemberLteMacSapProvider::TransmitPdu (TransmitPduParameters params) +{ + m_mac->DoTransmitPdu (params); +} + +template +void EnbMacMemberLteMacSapProvider::ReportBufferStatus (ReportBufferStatusParameters params) +{ + m_mac->DoReportBufferStatus (params); +} + + } // namespace ns3