A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
simple-ue-component-carrier-manager.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2015 Danilo Abrignani
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Danilo Abrignani <danilo.abrignani@unibo.it>
18 *
19 */
20
21#ifndef SIMPLE_UE_COMPONENT_CARRIER_MANAGER_H
22#define SIMPLE_UE_COMPONENT_CARRIER_MANAGER_H
23
24#include "lte-rrc-sap.h"
25#include "lte-ue-ccm-rrc-sap.h"
27
28#include <map>
29
30namespace ns3
31{
32class LteUeCcmRrcSapProvider;
33
34/**
35 * \brief Component carrier manager implementation which simply does nothing.
36 *
37 * Selecting this component carrier selection algorithm is equivalent to disabling automatic
38 * triggering of component carrier selection. This is the default choice.
39 *
40 */
42{
43 public:
44 /// Creates a No-op CCS algorithm instance.
46
48
49 /**
50 * \brief Get the type ID.
51 * \return the object TypeId
52 */
53 static TypeId GetTypeId();
54
55 // inherited from LteComponentCarrierManager
57
58 /// let the forwarder class access the protected and private members
60 // friend class MemberLteUeCcmRrcSapUser<SimpleUeComponentCarrierManager>;
61
62 /// allow SimpleUeCcmMacSapProvider class friend access
64 /// allow SimpleUeCcmMacSapUser class friend access
66
67 protected:
68 // inherited from Object
69 void DoInitialize() override;
70 void DoDispose() override;
71 // inherited from LteCcsAlgorithm as a Component Carrier Management SAP implementation
72 /**
73 * \brief Report Ue Measure function
74 * \param rnti the RNTI
75 * \param measResults the measure results
76 */
77 void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults);
78 // forwarded from LteMacSapProvider
79 /**
80 * \brief Transmit PDU function
81 * \param params LteMacSapProvider::TransmitPduParameters
82 */
84 /**
85 * \brief Report buffer status function
86 * \param params LteMacSapProvider::ReportBufferStatusParameters
87 */
89 /// Notify HARQ deliver failure
91 // forwarded from LteMacSapUser
92 /**
93 * \brief Notify TX opportunity function
94 *
95 * \param txOpParams the LteMacSapUser::TxOpportunityParameters
96 */
98 /**
99 * \brief Receive PDU function
100 *
101 * \param rxPduParams the LteMacSapUser::ReceivePduParameters
102 */
104 // forwarded from LteUeCcmRrcSapProvider
105 /**
106 * \brief Add LC function
107 * \param lcId the LCID
108 * \param lcConfig the logical channel config
109 * \param msu the MSU
110 * \returns updated LC config list
111 */
112 virtual std::vector<LteUeCcmRrcSapProvider::LcsConfig> DoAddLc(
113 uint8_t lcId,
115 LteMacSapUser* msu);
116 /**
117 * \brief Remove LC function
118 * \param lcid the LCID
119 * \returns updated LC list
120 */
121 std::vector<uint16_t> DoRemoveLc(uint8_t lcid);
122 /**
123 * \brief Configure signal bearer function
124 * \param lcId the LCID
125 * \param lcConfig the logical channel config
126 * \param msu the MSU
127 * \returns LteMacSapUser *
128 */
130 uint8_t lcId,
132 LteMacSapUser* msu);
133 /**
134 * \brief Reset LC map
135 *
136 */
137 void DoReset();
138
139 protected:
140 LteMacSapUser* m_ccmMacSapUser; //!< Interface to the UE RLC instance.
141 LteMacSapProvider* m_ccmMacSapProvider; //!< Receive API calls from the UE RLC instance
142
143}; // end of class SimpleUeComponentCarrierManager
144
145} // end of namespace ns3
146
147#endif /* SIMPLE_UE_COMPONENT_CARRIER_MANAGER_H */
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:36
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:96
The abstract base class of a Component Carrier Manager* for UE that operates using the component carr...
MemberLteUeCcmRrcSapProvider class.
Component carrier manager implementation which simply does nothing.
std::vector< uint16_t > DoRemoveLc(uint8_t lcid)
Remove LC function.
virtual void DoReportBufferStatus(LteMacSapProvider::ReportBufferStatusParameters params)
Report buffer status function.
LteMacSapUser * m_ccmMacSapUser
Interface to the UE RLC instance.
void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)
Report Ue Measure function.
void DoDispose() override
Destructor implementation.
LteMacSapProvider * GetLteMacSapProvider() override
Returns the MAC sap provider interface that if forwarding calls to the instance of the LteUeComponent...
void DoTransmitPdu(LteMacSapProvider::TransmitPduParameters params)
Transmit PDU function.
void DoNotifyHarqDeliveryFailure()
Notify HARQ deliver failure.
void DoNotifyTxOpportunity(LteMacSapUser::TxOpportunityParameters txOpParams)
Notify TX opportunity function.
virtual std::vector< LteUeCcmRrcSapProvider::LcsConfig > DoAddLc(uint8_t lcId, LteUeCmacSapProvider::LogicalChannelConfig lcConfig, LteMacSapUser *msu)
Add LC function.
void DoInitialize() override
Initialize() implementation.
SimpleUeComponentCarrierManager()
Creates a No-op CCS algorithm instance.
LteMacSapProvider * m_ccmMacSapProvider
Receive API calls from the UE RLC instance.
void DoReceivePdu(LteMacSapUser::ReceivePduParameters rxPduParams)
Receive PDU function.
virtual LteMacSapUser * DoConfigureSignalBearer(uint8_t lcId, LteUeCmacSapProvider::LogicalChannelConfig lcConfig, LteMacSapUser *msu)
Configure signal bearer function.
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Parameters for LteMacSapProvider::ReportBufferStatus.
Definition: lte-mac-sap.h:69
Parameters for LteMacSapProvider::TransmitPdu.
Definition: lte-mac-sap.h:45
Parameters for LteMacSapUser::ReceivePdu.
Definition: lte-mac-sap.h:166
Parameters for LteMacSapUser::NotifyTxOpportunity.
Definition: lte-mac-sap.h:105
MeasResults structure.
Definition: lte-rrc-sap.h:717