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;
34 class LteCcmRrcSapProvider;
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);
111  virtual void DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid);
118  virtual void DoReceivePdu (Ptr<Packet> p, uint16_t rnti, uint8_t lcid);
120  virtual void DoNotifyHarqDeliveryFailure ();
125  virtual void DoRemoveUe (uint16_t rnti);
132  virtual std::vector<uint8_t> DoReleaseDataRadioBearer (uint16_t rnti, uint8_t lcid);
145  virtual void DoUlReceiveMacCe (MacCeListElement_s bsr, uint8_t componentCarrierId);
152  virtual void DoNotifyPrbOccupancy (double prbOccupancy, uint8_t componentCarrierId);
153 
154 protected:
155 
156  std::map <uint8_t, double > m_ccPrbOccupancy;
157 
158 }; // end of class NoOpComponentCarrierManager
159 
160 
161 /*
162  * \brief Component carrier manager implementation that splits traffic equally among carriers.
163  */
165 {
166 public:
167 
169  virtual ~RrComponentCarrierManager ();
174  static TypeId GetTypeId ();
175 
176 protected:
177 
178  // Inherited methods
180  virtual void DoUlReceiveMacCe (MacCeListElement_s bsr, uint8_t componentCarrierId);
181 
182 }; // end of class RrComponentCarrierManager
183 
184 } // end of namespace ns3
185 
186 
187 #endif /* NO_OP_COMPONENT_CARRIER_MANAGER_H */
EnbMacMemberLteMacSapProvider class.
Definition: lte-mac-sap.h:134
virtual void DoRemoveUe(uint16_t rnti)
Remove UE.
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.
virtual void DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid)
Notify transmit opportunity.
virtual void DoTransmitPdu(LteMacSapProvider::TransmitPduParameters params)
Transmit PDU.
virtual void DoAddLc(LteEnbCmacSapProvider::LcInfo lcInfo, LteMacSapUser *msu)
Add LC.
std::map< uint8_t, double > m_ccPrbOccupancy
The physical resource block occupancy per carrier.
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 ...
MemberLteCcmRrcSapUser class.
virtual void DoNotifyHarqDeliveryFailure()
Notify HARQ delivery failure.
Parameters for LteMacSapProvider::ReportBufferStatus.
Definition: lte-mac-sap.h:67
virtual void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)
Implementation of ReportUeMeas.
This class contains the specification of EPS Bearers.
Definition: eps-bearer.h:71
virtual void DoUlReceiveMacCe(MacCeListElement_s bsr, uint8_t componentCarrierId)
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.
The default component carrier manager that forwards all traffic, the uplink and the downlink...
MeasResults structure.
Definition: lte-rrc-sap.h:671
static TypeId GetTypeId()
Get the type ID.
Logical Channel information to be passed to CmacSapProvider::ConfigureLc.
virtual void DoUlReceiveMacCe(MacCeListElement_s bsr, uint8_t componentCarrierId)
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.
virtual LteMacSapUser * DoConfigureSignalBearer(LteEnbCmacSapProvider::LcInfo lcinfo, LteMacSapUser *msu)
Configure the signal bearer.
virtual std::vector< uint8_t > DoReleaseDataRadioBearer(uint16_t rnti, uint8_t lcid)
Release data radio bearer.
See section 4.3.14 macCEListElement.
MemberLteCcmRrcSapProvider class.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static TypeId GetTypeId()
Get the type ID.
virtual void DoInitialize()
Initialize() implementation.
virtual void DoReportBufferStatus(LteMacSapProvider::ReportBufferStatusParameters params)
Report buffer status.
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:95
MemberLteCcmMacSapUser class.
The class implements Component Carrier Manager (CCM) that operates using the Component Carrier Manage...
virtual void DoDispose()
Destructor implementation.
virtual void DoReportBufferStatus(LteMacSapProvider::ReportBufferStatusParameters params)
Report buffer status.
a unique identifier for an interface.
Definition: type-id.h:58
virtual void DoAddUe(uint16_t rnti, uint8_t state)
Add UE.
virtual void DoReceivePdu(Ptr< Packet > p, uint16_t rnti, uint8_t lcid)
Receive PDU.
Parameters for LteMacSapProvider::TransmitPdu.
Definition: lte-mac-sap.h:45