# HG changeset patch # User Marco Miozzo # Date 1340630580 -7200 # Node ID e3629d54e53a055c3d8159cb44bb8523ba1e54a8 # Parent 5e09b29d4af5e137c777fcd0c0188a58087b8714 Add missing files of LteControlMessage diff -r 5e09b29d4af5 -r e3629d54e53a src/lte/model/ideal-control-messages.cc --- a/src/lte/model/ideal-control-messages.cc Mon Jun 25 13:41:13 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,180 +0,0 @@ -/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ -/* - * Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation; - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Author: Giuseppe Piro - * Marco Miozzo - */ - -#include "lte-control-messages.h" -#include "ns3/address-utils.h" -#include "ns3/uinteger.h" -#include "ns3/log.h" -#include "lte-net-device.h" -#include "lte-ue-net-device.h" - -NS_LOG_COMPONENT_DEFINE ("LteControlMessage"); - - -namespace ns3 { - -LteControlMessage::LteControlMessage (void) - : m_source (0), - m_destination (0) -{ -} - - -LteControlMessage::~LteControlMessage (void) -{ - m_source = 0; - m_destination = 0; -} - - -void -LteControlMessage::SetMessageType (LteControlMessage::MessageType type) -{ - m_type = type; -} - - -LteControlMessage::MessageType -LteControlMessage::GetMessageType (void) -{ - return m_type; -} - - -// ---------------------------------------------------------------------------------------------------------- - - -DlDciLteControlMessage::DlDciLteControlMessage (void) -{ - SetMessageType (LteControlMessage::DL_DCI); -} - - -DlDciLteControlMessage::~DlDciLteControlMessage (void) -{ - -} - -void -DlDciLteControlMessage::SetDci (DlDciListElement_s dci) -{ - m_dci = dci; - -} - - -DlDciListElement_s -DlDciLteControlMessage::GetDci (void) -{ - return m_dci; -} - - -// ---------------------------------------------------------------------------------------------------------- - - -UlDciLteControlMessage::UlDciLteControlMessage (void) -{ - SetMessageType (LteControlMessage::UL_DCI); -} - - -UlDciLteControlMessage::~UlDciLteControlMessage (void) -{ - -} - -void -UlDciLteControlMessage::SetDci (UlDciListElement_s dci) -{ - m_dci = dci; - -} - - -UlDciListElement_s -UlDciLteControlMessage::GetDci (void) -{ - return m_dci; -} - - -// ---------------------------------------------------------------------------------------------------------- - - -DlCqiLteControlMessage::DlCqiLteControlMessage (void) -{ - SetMessageType (LteControlMessage::DL_CQI); -} - - -DlCqiLteControlMessage::~DlCqiLteControlMessage (void) -{ - -} - -void -DlCqiLteControlMessage::SetDlCqi (CqiListElement_s dlcqi) -{ - m_dlCqi = dlcqi; - -} - - -CqiListElement_s -DlCqiLteControlMessage::GetDlCqi (void) -{ - return m_dlCqi; -} - - - -// ---------------------------------------------------------------------------------------------------------- - - -BsrLteControlMessage::BsrLteControlMessage (void) -{ - SetMessageType (LteControlMessage::BSR); -} - - -BsrLteControlMessage::~BsrLteControlMessage (void) -{ - -} - -void -BsrLteControlMessage::SetBsr (MacCeListElement_s bsr) -{ - m_bsr = bsr; - -} - - -MacCeListElement_s -BsrLteControlMessage::GetBsr (void) -{ - return m_bsr; -} - - -} // namespace ns3 - diff -r 5e09b29d4af5 -r e3629d54e53a src/lte/model/ideal-control-messages.h --- a/src/lte/model/ideal-control-messages.h Mon Jun 25 13:41:13 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,257 +0,0 @@ -/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ -/* - * Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation; - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Author: Giuseppe Piro - * Author: Marco Miozzo - */ - -#ifndef LTE_CONTROL_MESSAGES_H -#define LTE_CONTROL_MESSAGES_H - -#include "ns3/ptr.h" -#include "ns3/simple-ref-count.h" -#include - -namespace ns3 { - -class LteNetDevice; - - -/** - * \ingroup lte - * - * The LteControlMessage provides a basic implementations for - * control messages (such as PDCCH allocation map, CQI feedbacks) - * that are exchanged among eNodeB and UEs. - */ -class LteControlMessage : public SimpleRefCount -{ -public: - /** - * The type of the message - */ - enum MessageType - { - DL_DCI, UL_DCI, // Downlink/Uplink Data Control Indicator - DL_CQI, UL_CQI, // Downlink/Uplink Channel Quality Indicator - BSR // Buffer Status Report - }; - - LteControlMessage (void); - virtual ~LteControlMessage (void); - - /** - * \brief Set the type of the message - * \param type the type of the message - */ - void SetMessageType (MessageType type); - /** - * \brief Get the type of the message - * \return the type of the message - */ - MessageType GetMessageType (void); - -private: - Ptr m_source; - Ptr m_destination; - MessageType m_type; -}; -} // namespace ns3 - -#endif /* LTE_CONTROL_MESSAGES_H */ - - - - -// ---------------------------------------------------------------------------------------------------------- - - -#ifndef DL_DCI_LTE_CONTROL_MESSAGES_H -#define DL_DCI_LTE_CONTROL_MESSAGES_H - -#include -#include - -namespace ns3 { - -/** - * \ingroup lte - * The Downlink Data Control Indicator messages defines the RB allocation for the - * users in the downlink - */ -class DlDciLteControlMessage : public LteControlMessage -{ -public: - DlDciLteControlMessage (void); - virtual ~DlDciLteControlMessage (void); - - /** - * \brief add a DCI into the message - * \param dci the dci - */ - void SetDci (DlDciListElement_s dci); - - /** - * \brief Get dic informations - * \return dci messages - */ - DlDciListElement_s GetDci (void); - - -private: - DlDciListElement_s m_dci; -}; -} // namespace ns3 - -#endif /* DL_DCI_LTE_CONTROL_MESSAGES_H */ - - -// ---------------------------------------------------------------------------------------------------------- - - -#ifndef UL_DCI_LTE_CONTROL_MESSAGES_H -#define UL_DCI_LTE_CONTROL_MESSAGES_H - -#include -#include - -namespace ns3 { - -/** - * \ingroup lte - * The Uplink Data Control Indicator messages defines the RB allocation for the - * users in the uplink - */ -class UlDciLteControlMessage : public LteControlMessage -{ -public: - UlDciLteControlMessage (void); - virtual ~UlDciLteControlMessage (void); - - /** - * \brief add a DCI into the message - * \param dci the dci - */ - void SetDci (UlDciListElement_s dci); - - /** - * \brief Get dic informations - * \return dci messages - */ - UlDciListElement_s GetDci (void); - - -private: - UlDciListElement_s m_dci; -}; -} // namespace ns3 - -#endif /* UL_DCI_LTE_CONTROL_MESSAGES_H */ - - - -// ---------------------------------------------------------------------------------------------------------- - - - -#ifndef DLCQI_LTE_CONTROL_MESSAGES_H -#define DLCQI_LTE_CONTROL_MESSAGES_H - -#include -#include - -namespace ns3 { - -class LteNetDevice; - -/** - * \ingroup lte - * The downlink CqiLteControlMessage defines an ideal list of - * feedback about the channel quality sent by the UE to the eNodeB. - */ -class DlCqiLteControlMessage : public LteControlMessage -{ -public: - DlCqiLteControlMessage (void); - virtual ~DlCqiLteControlMessage (void); - - /** - * \brief add a DL-CQI feedback record into the message. - * \param dlcqi the DL cqi feedback - */ - void SetDlCqi (CqiListElement_s dlcqi); - - /** - * \brief Get DL cqi informations - * \return dlcqi messages - */ - CqiListElement_s GetDlCqi (void); - - -private: - CqiListElement_s m_dlCqi; -}; -} // namespace ns3 - -#endif /* DLCQI_LTE_CONTROL_MESSAGES_H */ - - -// ---------------------------------------------------------------------------------------------------------- - -#ifndef BSR_LTE_CONTROL_MESSAGES_H -#define BSR_LTE_CONTROL_MESSAGES_H - -#include -#include - -namespace ns3 { - -class LteNetDevice; - -/** - * \ingroup lte - * The uplink BsrLteControlMessage defines the specific - * extension of the CE element for reporting the buffer status report - */ -class BsrLteControlMessage : public LteControlMessage -{ -public: - BsrLteControlMessage (void); - virtual ~BsrLteControlMessage (void); - - /** - * \brief add a BSR feedback record into the message. - * \param bsr the BSR feedback - */ - void SetBsr (MacCeListElement_s ulcqi); - - /** - * \brief Get BSR informations - * \return BSR message - */ - MacCeListElement_s GetBsr (void); - - -private: - MacCeListElement_s m_bsr; - - -}; -} // namespace ns3 - -#endif /* LTE_CONTROL_MESSAGES_H */ - diff -r 5e09b29d4af5 -r e3629d54e53a src/lte/model/lte-control-messages.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/lte/model/lte-control-messages.cc Mon Jun 25 15:23:00 2012 +0200 @@ -0,0 +1,180 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Giuseppe Piro + * Marco Miozzo + */ + +#include "lte-control-messages.h" +#include "ns3/address-utils.h" +#include "ns3/uinteger.h" +#include "ns3/log.h" +#include "lte-net-device.h" +#include "lte-ue-net-device.h" + +NS_LOG_COMPONENT_DEFINE ("LteControlMessage"); + + +namespace ns3 { + +LteControlMessage::LteControlMessage (void) + : m_source (0), + m_destination (0) +{ +} + + +LteControlMessage::~LteControlMessage (void) +{ + m_source = 0; + m_destination = 0; +} + + +void +LteControlMessage::SetMessageType (LteControlMessage::MessageType type) +{ + m_type = type; +} + + +LteControlMessage::MessageType +LteControlMessage::GetMessageType (void) +{ + return m_type; +} + + +// ---------------------------------------------------------------------------------------------------------- + + +DlDciLteControlMessage::DlDciLteControlMessage (void) +{ + SetMessageType (LteControlMessage::DL_DCI); +} + + +DlDciLteControlMessage::~DlDciLteControlMessage (void) +{ + +} + +void +DlDciLteControlMessage::SetDci (DlDciListElement_s dci) +{ + m_dci = dci; + +} + + +DlDciListElement_s +DlDciLteControlMessage::GetDci (void) +{ + return m_dci; +} + + +// ---------------------------------------------------------------------------------------------------------- + + +UlDciLteControlMessage::UlDciLteControlMessage (void) +{ + SetMessageType (LteControlMessage::UL_DCI); +} + + +UlDciLteControlMessage::~UlDciLteControlMessage (void) +{ + +} + +void +UlDciLteControlMessage::SetDci (UlDciListElement_s dci) +{ + m_dci = dci; + +} + + +UlDciListElement_s +UlDciLteControlMessage::GetDci (void) +{ + return m_dci; +} + + +// ---------------------------------------------------------------------------------------------------------- + + +DlCqiLteControlMessage::DlCqiLteControlMessage (void) +{ + SetMessageType (LteControlMessage::DL_CQI); +} + + +DlCqiLteControlMessage::~DlCqiLteControlMessage (void) +{ + +} + +void +DlCqiLteControlMessage::SetDlCqi (CqiListElement_s dlcqi) +{ + m_dlCqi = dlcqi; + +} + + +CqiListElement_s +DlCqiLteControlMessage::GetDlCqi (void) +{ + return m_dlCqi; +} + + + +// ---------------------------------------------------------------------------------------------------------- + + +BsrLteControlMessage::BsrLteControlMessage (void) +{ + SetMessageType (LteControlMessage::BSR); +} + + +BsrLteControlMessage::~BsrLteControlMessage (void) +{ + +} + +void +BsrLteControlMessage::SetBsr (MacCeListElement_s bsr) +{ + m_bsr = bsr; + +} + + +MacCeListElement_s +BsrLteControlMessage::GetBsr (void) +{ + return m_bsr; +} + + +} // namespace ns3 + diff -r 5e09b29d4af5 -r e3629d54e53a src/lte/model/lte-control-messages.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/lte/model/lte-control-messages.h Mon Jun 25 15:23:00 2012 +0200 @@ -0,0 +1,257 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Giuseppe Piro + * Author: Marco Miozzo + */ + +#ifndef LTE_CONTROL_MESSAGES_H +#define LTE_CONTROL_MESSAGES_H + +#include "ns3/ptr.h" +#include "ns3/simple-ref-count.h" +#include + +namespace ns3 { + +class LteNetDevice; + + +/** + * \ingroup lte + * + * The LteControlMessage provides a basic implementations for + * control messages (such as PDCCH allocation map, CQI feedbacks) + * that are exchanged among eNodeB and UEs. + */ +class LteControlMessage : public SimpleRefCount +{ +public: + /** + * The type of the message + */ + enum MessageType + { + DL_DCI, UL_DCI, // Downlink/Uplink Data Control Indicator + DL_CQI, UL_CQI, // Downlink/Uplink Channel Quality Indicator + BSR // Buffer Status Report + }; + + LteControlMessage (void); + virtual ~LteControlMessage (void); + + /** + * \brief Set the type of the message + * \param type the type of the message + */ + void SetMessageType (MessageType type); + /** + * \brief Get the type of the message + * \return the type of the message + */ + MessageType GetMessageType (void); + +private: + Ptr m_source; + Ptr m_destination; + MessageType m_type; +}; +} // namespace ns3 + +#endif /* LTE_CONTROL_MESSAGES_H */ + + + + +// ---------------------------------------------------------------------------------------------------------- + + +#ifndef DL_DCI_LTE_CONTROL_MESSAGES_H +#define DL_DCI_LTE_CONTROL_MESSAGES_H + +#include +#include + +namespace ns3 { + +/** + * \ingroup lte + * The Downlink Data Control Indicator messages defines the RB allocation for the + * users in the downlink + */ +class DlDciLteControlMessage : public LteControlMessage +{ +public: + DlDciLteControlMessage (void); + virtual ~DlDciLteControlMessage (void); + + /** + * \brief add a DCI into the message + * \param dci the dci + */ + void SetDci (DlDciListElement_s dci); + + /** + * \brief Get dic informations + * \return dci messages + */ + DlDciListElement_s GetDci (void); + + +private: + DlDciListElement_s m_dci; +}; +} // namespace ns3 + +#endif /* DL_DCI_LTE_CONTROL_MESSAGES_H */ + + +// ---------------------------------------------------------------------------------------------------------- + + +#ifndef UL_DCI_LTE_CONTROL_MESSAGES_H +#define UL_DCI_LTE_CONTROL_MESSAGES_H + +#include +#include + +namespace ns3 { + +/** + * \ingroup lte + * The Uplink Data Control Indicator messages defines the RB allocation for the + * users in the uplink + */ +class UlDciLteControlMessage : public LteControlMessage +{ +public: + UlDciLteControlMessage (void); + virtual ~UlDciLteControlMessage (void); + + /** + * \brief add a DCI into the message + * \param dci the dci + */ + void SetDci (UlDciListElement_s dci); + + /** + * \brief Get dic informations + * \return dci messages + */ + UlDciListElement_s GetDci (void); + + +private: + UlDciListElement_s m_dci; +}; +} // namespace ns3 + +#endif /* UL_DCI_LTE_CONTROL_MESSAGES_H */ + + + +// ---------------------------------------------------------------------------------------------------------- + + + +#ifndef DLCQI_LTE_CONTROL_MESSAGES_H +#define DLCQI_LTE_CONTROL_MESSAGES_H + +#include +#include + +namespace ns3 { + +class LteNetDevice; + +/** + * \ingroup lte + * The downlink CqiLteControlMessage defines an ideal list of + * feedback about the channel quality sent by the UE to the eNodeB. + */ +class DlCqiLteControlMessage : public LteControlMessage +{ +public: + DlCqiLteControlMessage (void); + virtual ~DlCqiLteControlMessage (void); + + /** + * \brief add a DL-CQI feedback record into the message. + * \param dlcqi the DL cqi feedback + */ + void SetDlCqi (CqiListElement_s dlcqi); + + /** + * \brief Get DL cqi informations + * \return dlcqi messages + */ + CqiListElement_s GetDlCqi (void); + + +private: + CqiListElement_s m_dlCqi; +}; +} // namespace ns3 + +#endif /* DLCQI_LTE_CONTROL_MESSAGES_H */ + + +// ---------------------------------------------------------------------------------------------------------- + +#ifndef BSR_LTE_CONTROL_MESSAGES_H +#define BSR_LTE_CONTROL_MESSAGES_H + +#include +#include + +namespace ns3 { + +class LteNetDevice; + +/** + * \ingroup lte + * The uplink BsrLteControlMessage defines the specific + * extension of the CE element for reporting the buffer status report + */ +class BsrLteControlMessage : public LteControlMessage +{ +public: + BsrLteControlMessage (void); + virtual ~BsrLteControlMessage (void); + + /** + * \brief add a BSR feedback record into the message. + * \param bsr the BSR feedback + */ + void SetBsr (MacCeListElement_s ulcqi); + + /** + * \brief Get BSR informations + * \return BSR message + */ + MacCeListElement_s GetBsr (void); + + +private: + MacCeListElement_s m_bsr; + + +}; +} // namespace ns3 + +#endif /* LTE_CONTROL_MESSAGES_H */ +