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 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Danilo Abrignani <danilo.abrignani@unibo.it>
7 *
8 */
9
10#ifndef SIMPLE_UE_COMPONENT_CARRIER_MANAGER_H
11#define SIMPLE_UE_COMPONENT_CARRIER_MANAGER_H
12
13#include "lte-rrc-sap.h"
14#include "lte-ue-ccm-rrc-sap.h"
16
17#include <map>
18
19namespace ns3
20{
21class LteUeCcmRrcSapProvider;
22
23/**
24 * \brief Component carrier manager implementation which simply does nothing.
25 *
26 * Selecting this component carrier selection algorithm is equivalent to disabling automatic
27 * triggering of component carrier selection. This is the default choice.
28 *
29 */
31{
32 public:
33 /// Creates a No-op CCS algorithm instance.
35
37
38 /**
39 * \brief Get the type ID.
40 * \return the object TypeId
41 */
42 static TypeId GetTypeId();
43
44 // inherited from LteComponentCarrierManager
46
47 /// let the forwarder class access the protected and private members
49 // friend class MemberLteUeCcmRrcSapUser<SimpleUeComponentCarrierManager>;
50
51 /// allow SimpleUeCcmMacSapProvider class friend access
53 /// allow SimpleUeCcmMacSapUser class friend access
55
56 protected:
57 // inherited from Object
58 void DoInitialize() override;
59 void DoDispose() override;
60 // inherited from LteCcsAlgorithm as a Component Carrier Management SAP implementation
61 /**
62 * \brief Report Ue Measure function
63 * \param rnti the RNTI
64 * \param measResults the measure results
65 */
66 void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults);
67 // forwarded from LteMacSapProvider
68 /**
69 * \brief Transmit PDU function
70 * \param params LteMacSapProvider::TransmitPduParameters
71 */
73 /**
74 * \brief Report buffer status function
75 * \param params LteMacSapProvider::ReportBufferStatusParameters
76 */
78 /// Notify HARQ deliver failure
80 // forwarded from LteMacSapUser
81 /**
82 * \brief Notify TX opportunity function
83 *
84 * \param txOpParams the LteMacSapUser::TxOpportunityParameters
85 */
87 /**
88 * \brief Receive PDU function
89 *
90 * \param rxPduParams the LteMacSapUser::ReceivePduParameters
91 */
93 // forwarded from LteUeCcmRrcSapProvider
94 /**
95 * \brief Add LC function
96 * \param lcId the LCID
97 * \param lcConfig the logical channel config
98 * \param msu the MSU
99 * \returns updated LC config list
100 */
101 virtual std::vector<LteUeCcmRrcSapProvider::LcsConfig> DoAddLc(
102 uint8_t lcId,
104 LteMacSapUser* msu);
105 /**
106 * \brief Remove LC function
107 * \param lcid the LCID
108 * \returns updated LC list
109 */
110 std::vector<uint16_t> DoRemoveLc(uint8_t lcid);
111 /**
112 * \brief Configure signal bearer function
113 * \param lcId the LCID
114 * \param lcConfig the logical channel config
115 * \param msu the MSU
116 * \returns LteMacSapUser *
117 */
119 uint8_t lcId,
121 LteMacSapUser* msu);
122 /**
123 * \brief Reset LC map
124 *
125 */
126 void DoReset();
127
128 protected:
129 LteMacSapUser* m_ccmMacSapUser; //!< Interface to the UE RLC instance.
130 LteMacSapProvider* m_ccmMacSapProvider; //!< Receive API calls from the UE RLC instance
131
132}; // end of class SimpleUeComponentCarrierManager
133
134} // end of namespace ns3
135
136#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:25
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition lte-mac-sap.h:85
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:48
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Parameters for LteMacSapProvider::ReportBufferStatus.
Definition lte-mac-sap.h:58
Parameters for LteMacSapProvider::TransmitPdu.
Definition lte-mac-sap.h:34
Parameters for LteMacSapUser::ReceivePdu.
Parameters for LteMacSapUser::NotifyTxOpportunity.
Definition lte-mac-sap.h:94
MeasResults structure.