A Discrete-Event Network Simulator
API
no-op-component-carrier-manager.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2015 Danilo Abrignani
4  * Copyright (c) 2016 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation;
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Authors: Danilo Abrignani <danilo.abrignani@unibo.it>
20  * Biljana Bojovic <biljana.bojovic@cttc.es>
21  */
22 
23 #ifndef NO_OP_COMPONENT_CARRIER_MANAGER_H
24 #define NO_OP_COMPONENT_CARRIER_MANAGER_H
25 
26 #include <ns3/lte-enb-component-carrier-manager.h>
27 #include <ns3/lte-ccm-rrc-sap.h>
28 #include <ns3/lte-rrc-sap.h>
29 #include <map>
30 
31 namespace ns3 {
32 
33 class UeManager;
35 
44 {
53 
54 public:
55 
62  static TypeId GetTypeId ();
63 
64 protected:
65  // Inherited methods
66  virtual void DoInitialize ();
67  virtual void DoDispose ();
68  virtual void DoReportUeMeas (uint16_t rnti, LteRrcSap::MeasResults measResults);
74  virtual void DoAddUe (uint16_t rnti, uint8_t state);
80  virtual void DoAddLc (LteEnbCmacSapProvider::LcInfo lcInfo, LteMacSapUser* msu);
91  virtual std::vector<LteCcmRrcSapProvider::LcsConfig> DoSetupDataRadioBearer (EpsBearer bearer, uint8_t bearerId, uint16_t rnti, uint8_t lcid, uint8_t lcGroup, LteMacSapUser* msu);
113  virtual void DoReceivePdu (LteMacSapUser::ReceivePduParameters rxPduParams);
115  virtual void DoNotifyHarqDeliveryFailure ();
120  virtual void DoRemoveUe (uint16_t rnti);
127  virtual std::vector<uint8_t> DoReleaseDataRadioBearer (uint16_t rnti, uint8_t lcid);
140  virtual void DoUlReceiveMacCe (MacCeListElement_s bsr, uint8_t componentCarrierId);
146  virtual void DoUlReceiveSr (uint16_t rnti, uint8_t componentCarrierId);
153  virtual void DoNotifyPrbOccupancy (double prbOccupancy, uint8_t componentCarrierId);
154 
155 protected:
156 
157  std::map <uint8_t, double > m_ccPrbOccupancy;
158 
159 }; // end of class NoOpComponentCarrierManager
160 
161 
166 {
167 public:
168 
170  virtual ~RrComponentCarrierManager () override;
175  static TypeId GetTypeId ();
176 
177 protected:
178 
179  // Inherited methods
181  virtual void DoUlReceiveMacCe (MacCeListElement_s bsr, uint8_t componentCarrierId) override;
182  virtual void DoUlReceiveSr (uint16_t rnti, uint8_t componentCarrierId) override;
183 
184 private:
185  uint8_t m_lastCcIdForSr {0};
186 }; // end of class RrComponentCarrierManager
187 
188 } // end of namespace ns3
189 
190 
191 #endif /* NO_OP_COMPONENT_CARRIER_MANAGER_H */
ns3::LteMacSapProvider::TransmitPduParameters
Parameters for LteMacSapProvider::TransmitPdu.
Definition: lte-mac-sap.h:46
ns3::TypeId
a unique identifier for an interface.
Definition: type-id.h:59
ns3::NoOpComponentCarrierManager::DoAddLc
virtual void DoAddLc(LteEnbCmacSapProvider::LcInfo lcInfo, LteMacSapUser *msu)
Add LC.
Definition: no-op-component-carrier-manager.cc:194
ns3::RrComponentCarrierManager::m_lastCcIdForSr
uint8_t m_lastCcIdForSr
Last CCID to which a SR was routed.
Definition: no-op-component-carrier-manager.h:185
ns3::EnbMacMemberLteMacSapProvider
EnbMacMemberLteMacSapProvider class.
Definition: lte-mac-sap.h:191
ns3::MemberLteCcmMacSapUser
MemberLteCcmMacSapUser class.
Definition: lte-ccm-mac-sap.h:153
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::LteMacSapUser::TxOpportunityParameters
Parameters for LteMacSapUser::NotifyTxOpportunity.
Definition: lte-mac-sap.h:104
ns3::NoOpComponentCarrierManager::DoInitialize
virtual void DoInitialize()
Initialize() implementation.
Definition: no-op-component-carrier-manager.cc:70
ns3::NoOpComponentCarrierManager::DoUlReceiveSr
virtual void DoUlReceiveSr(uint16_t rnti, uint8_t componentCarrierId)
Forward uplink SR to CCM, called by MAC through CCM SAP interface.
Definition: no-op-component-carrier-manager.cc:427
ns3::LteCcmRrcSapProvider
Service Access Point (SAP) offered by the Component Carrier Manager (CCM) instance to the eNodeB RRC ...
Definition: lte-ccm-rrc-sap.h:47
ns3::RrComponentCarrierManager::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition: no-op-component-carrier-manager.cc:455
ns3::NoOpComponentCarrierManager
The default component carrier manager that forwards all traffic, the uplink and the downlink,...
Definition: no-op-component-carrier-manager.h:44
ns3::NoOpComponentCarrierManager::DoReportUeMeas
virtual void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)
Implementation of ReportUeMeas.
Definition: no-op-component-carrier-manager.cc:134
ns3::LteEnbCmacSapProvider::LcInfo
Logical Channel information to be passed to CmacSapProvider::ConfigureLc.
Definition: lte-enb-cmac-sap.h:73
ns3::NoOpComponentCarrierManager::NoOpComponentCarrierManager
NoOpComponentCarrierManager()
Definition: no-op-component-carrier-manager.cc:33
ns3::NoOpComponentCarrierManager::DoNotifyHarqDeliveryFailure
virtual void DoNotifyHarqDeliveryFailure()
Notify HARQ delivery failure.
Definition: no-op-component-carrier-manager.cc:128
ns3::RrComponentCarrierManager::~RrComponentCarrierManager
virtual ~RrComponentCarrierManager() override
Definition: no-op-component-carrier-manager.cc:449
ns3::NoOpComponentCarrierManager::DoReleaseDataRadioBearer
virtual std::vector< uint8_t > DoReleaseDataRadioBearer(uint16_t rnti, uint8_t lcid)
Release data radio bearer.
Definition: no-op-component-carrier-manager.cc:320
ns3::NoOpComponentCarrierManager::DoNotifyPrbOccupancy
virtual void DoNotifyPrbOccupancy(double prbOccupancy, uint8_t componentCarrierId)
Function implements the function of the SAP interface of CCM instance which is used by MAC to notify ...
Definition: no-op-component-carrier-manager.cc:374
ns3::NoOpComponentCarrierManager::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition: no-op-component-carrier-manager.cc:58
ns3::RrComponentCarrierManager::DoUlReceiveSr
virtual void DoUlReceiveSr(uint16_t rnti, uint8_t componentCarrierId) override
Forward uplink SR to CCM, called by MAC through CCM SAP interface.
Definition: no-op-component-carrier-manager.cc:543
ns3::NoOpComponentCarrierManager::DoNotifyTxOpportunity
virtual void DoNotifyTxOpportunity(LteMacSapUser::TxOpportunityParameters txOpParams)
Notify transmit opportunity.
Definition: no-op-component-carrier-manager.cc:102
ns3::LteMacSapProvider::ReportBufferStatusParameters
Parameters for LteMacSapProvider::ReportBufferStatus.
Definition: lte-mac-sap.h:68
ns3::MemberLteCcmRrcSapUser
MemberLteCcmRrcSapUser class.
Definition: lte-ccm-rrc-sap.h:300
ns3::RrComponentCarrierManager::DoReportBufferStatus
virtual void DoReportBufferStatus(LteMacSapProvider::ReportBufferStatusParameters params) override
Report buffer status.
Definition: no-op-component-carrier-manager.cc:467
ns3::NoOpComponentCarrierManager::DoAddUe
virtual void DoAddUe(uint16_t rnti, uint8_t state)
Add UE.
Definition: no-op-component-carrier-manager.cc:141
ns3::MacCeListElement_s
See section 4.3.14 macCEListElement.
Definition: ff-mac-common.h:337
ns3::NoOpComponentCarrierManager::DoUlReceiveMacCe
virtual void DoUlReceiveMacCe(MacCeListElement_s bsr, uint8_t componentCarrierId)
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.
Definition: no-op-component-carrier-manager.cc:382
ns3::LteMacSapUser::ReceivePduParameters
Parameters for LteMacSapUser::ReceivePdu.
Definition: lte-mac-sap.h:157
ns3::NoOpComponentCarrierManager::DoReceivePdu
virtual void DoReceivePdu(LteMacSapUser::ReceivePduParameters rxPduParams)
Receive PDU.
Definition: no-op-component-carrier-manager.cc:115
ns3::UeManager
Manages all the radio bearer information possessed by the ENB RRC for a single UE.
Definition: lte-enb-rrc.h:75
ns3::NoOpComponentCarrierManager::DoDispose
virtual void DoDispose()
Destructor implementation.
Definition: no-op-component-carrier-manager.cc:48
ns3::LteRrcSap::MeasResults
MeasResults structure.
Definition: lte-rrc-sap.h:679
ns3::LteEnbComponentCarrierManager
The class implements Component Carrier Manager (CCM) that operates using the Component Carrier Manage...
Definition: lte-enb-component-carrier-manager.h:79
ns3::LteMacSapUser
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:96
ns3::EpsBearer
This class contains the specification of EPS Bearers.
Definition: eps-bearer.h:92
ns3::NoOpComponentCarrierManager::DoReportBufferStatus
virtual void DoReportBufferStatus(LteMacSapProvider::ReportBufferStatusParameters params)
Report buffer status.
Definition: no-op-component-carrier-manager.cc:92
ns3::NoOpComponentCarrierManager::DoSetupDataRadioBearer
virtual std::vector< LteCcmRrcSapProvider::LcsConfig > DoSetupDataRadioBearer(EpsBearer bearer, uint8_t bearerId, uint16_t rnti, uint8_t lcid, uint8_t lcGroup, LteMacSapUser *msu)
Setup data radio bearer.
Definition: no-op-component-carrier-manager.cc:228
ns3::NoOpComponentCarrierManager::m_ccPrbOccupancy
std::map< uint8_t, double > m_ccPrbOccupancy
The physical resource block occupancy per carrier.
Definition: no-op-component-carrier-manager.h:157
ns3::NoOpComponentCarrierManager::DoConfigureSignalBearer
virtual LteMacSapUser * DoConfigureSignalBearer(LteEnbCmacSapProvider::LcInfo lcinfo, LteMacSapUser *msu)
Configure the signal bearer.
Definition: no-op-component-carrier-manager.cc:352
ns3::NoOpComponentCarrierManager::DoRemoveUe
virtual void DoRemoveUe(uint16_t rnti)
Remove UE.
Definition: no-op-component-carrier-manager.cc:203
ns3::RrComponentCarrierManager
Component carrier manager implementation that splits traffic equally among carriers.
Definition: no-op-component-carrier-manager.h:166
ns3::NoOpComponentCarrierManager::DoTransmitPdu
virtual void DoTransmitPdu(LteMacSapProvider::TransmitPduParameters params)
Transmit PDU.
Definition: no-op-component-carrier-manager.cc:82
ns3::MemberLteCcmRrcSapProvider
MemberLteCcmRrcSapProvider class.
Definition: lte-ccm-rrc-sap.h:226
ns3::NoOpComponentCarrierManager::~NoOpComponentCarrierManager
virtual ~NoOpComponentCarrierManager()
Definition: no-op-component-carrier-manager.cc:42
ns3::RrComponentCarrierManager::DoUlReceiveMacCe
virtual void DoUlReceiveMacCe(MacCeListElement_s bsr, uint8_t componentCarrierId) override
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.
Definition: no-op-component-carrier-manager.cc:494
ns3::RrComponentCarrierManager::RrComponentCarrierManager
RrComponentCarrierManager()
Definition: no-op-component-carrier-manager.cc:443