A Discrete-Event Network Simulator
API
simple-ue-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  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Danilo Abrignani <danilo.abrignani@unibo.it>
19  *
20  */
21 
22 #ifndef SIMPLE_UE_COMPONENT_CARRIER_MANAGER_H
23 #define SIMPLE_UE_COMPONENT_CARRIER_MANAGER_H
24 
25 #include <ns3/lte-ue-component-carrier-manager.h>
26 #include <ns3/lte-ue-ccm-rrc-sap.h>
27 #include <ns3/lte-rrc-sap.h>
28 #include <map>
29 
30 namespace ns3 {
31  class LteUeCcmRrcSapProvider;
32 
41 {
42 public:
45 
47 
52  static TypeId GetTypeId ();
53 
54  // inherited from LteComponentCarrierManager
55  virtual void SetLteCcmRrcSapUser (LteUeCcmRrcSapUser* s);
58 
59 
60 
63  //friend class MemberLteUeCcmRrcSapUser<SimpleUeComponentCarrierManager>;
64 
68  friend class SimpleUeCcmMacSapUser;
69 
70 protected:
71 
72  // inherited from Object
73  virtual void DoInitialize ();
74  virtual void DoDispose ();
75  // inherited from LteCcsAlgorithm as a Component Carrier Management SAP implementation
81  void DoReportUeMeas (uint16_t rnti, LteRrcSap::MeasResults measResults);
82  // forwarded from LteMacSapProvider
95  // forwarded from LteMacSapUser
105  void DoNotifyTxOpportunity (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid);
112  void DoReceivePdu (Ptr<Packet> p, uint16_t rnti, uint8_t lcid);
113  //forwarded from LteUeCcmRrcSapProvider
121  std::vector<LteUeCcmRrcSapProvider::LcsConfig> DoAddLc (uint8_t lcId, LteUeCmacSapProvider::LogicalChannelConfig lcConfig, LteMacSapUser* msu);
127  std::vector<uint16_t> DoRemoveLc (uint8_t lcid);
138 
139 private:
140 
145 
146 }; // end of class SimpleUeComponentCarrierManager
147 
148 
149 } // end of namespace ns3
150 
151 
152 #endif /* SIMPLE_UE_COMPONENT_CARRIER_MANAGER_H */
void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)
Report Ue Measure function.
void DoReportBufferStatus(LteMacSapProvider::ReportBufferStatusParameters params)
Report buffer status function.
void DoReceivePdu(Ptr< Packet > p, uint16_t rnti, uint8_t lcid)
Receive PDU function.
std::vector< uint16_t > DoRemoveLc(uint8_t lcid)
Remove LC function.
LteUeCcmRrcSapProvider * m_ccmRrcSapProvider
Receive API calls from the eNodeB RRC instance.
virtual void DoInitialize()
Initialize() implementation.
LteUeCcmRrcSapUser * m_ccmRrcSapUser
Interface to the eNodeB RRC instance.
Parameters for LteMacSapProvider::ReportBufferStatus.
Definition: lte-mac-sap.h:67
void DoNotifyConnectionReconfigurationMsg()
Notify connection reconfiguration message.
MeasResults structure.
Definition: lte-rrc-sap.h:671
LteMacSapUser * DoConfigureSignalBearer(uint8_t lcId, LteUeCmacSapProvider::LogicalChannelConfig lcConfig, LteMacSapUser *msu)
Configure signal bearer function.
MemberLteUeCcmRrcSapProvider class.
Service Access Point (SAP) offered by the UE RRC to the UE CCM.
LteMacSapProvider * m_ccmMacSapProvider
Receive API calls from the eNodeB RLC instance.
virtual void DoDispose()
Destructor implementation.
virtual LteMacSapProvider * GetLteMacSapProvider()
Returns the MAC sap provider interface that if forwarding calls to the instance of the LteUeComponent...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void DoTransmitPdu(LteMacSapProvider::TransmitPduParameters params)
Transmit PDU function.
void DoNotifyTxOpportunity(uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid)
Notify TX opportunity function.
The abstract base class of a Component Carrier Manager* for UE that operates using the component carr...
Component carrier manager implementation which simply does nothing.
Service Access Point (SAP) offered by the UE component carrier manager to the UE RRC.
virtual LteUeCcmRrcSapProvider * GetLteCcmRrcSapProvider()
Exports the "provider" part of the ComponentCarrier Management SAP interface.
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:95
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:36
SimpleUeComponentCarrierManager()
Creates a No-op CCS algorithm instance.
void DoNotifyHarqDeliveryFailure()
Notify HARQ deliver failure.
LteMacSapUser * m_ccmMacSapUser
Interface to the eNodeB RLC instance.
std::vector< LteUeCcmRrcSapProvider::LcsConfig > DoAddLc(uint8_t lcId, LteUeCmacSapProvider::LogicalChannelConfig lcConfig, LteMacSapUser *msu)
Add LC function.
a unique identifier for an interface.
Definition: type-id.h:58
virtual void SetLteCcmRrcSapUser(LteUeCcmRrcSapUser *s)
Set the "user" part of the ComponentCarrier Management SAP interface that this UE component carrier m...
Parameters for LteMacSapProvider::TransmitPdu.
Definition: lte-mac-sap.h:45