A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
no-op-component-carrier-manager.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2015 Danilo Abrignani
3 * Copyright (c) 2016 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
4 *
5 * SPDX-License-Identifier: GPL-2.0-only
6 *
7 * Authors: Danilo Abrignani <danilo.abrignani@unibo.it>
8 * Biljana Bojovic <biljana.bojovic@cttc.es>
9 */
10
11#ifndef NO_OP_COMPONENT_CARRIER_MANAGER_H
12#define NO_OP_COMPONENT_CARRIER_MANAGER_H
13
14#include "lte-ccm-rrc-sap.h"
16#include "lte-rrc-sap.h"
17
18#include <map>
19
20namespace ns3
21{
22
23class UeManager;
25
26/**
27 * \brief The default component carrier manager that forwards all traffic, the uplink and the
28 * downlink, over the primary carrier, and will not use secondary carriers. To enable carrier
29 * aggregation feature, select another component carrier manager class, i.e., some of child classes
30 * of LteEnbComponentCarrierManager of NoOpComponentCarrierManager.
31 */
32
34{
35 /// allow EnbMacMemberLteMacSapProvider<NoOpComponentCarrierManager> class friend access
37 /// allow MemberLteCcmRrcSapProvider<NoOpComponentCarrierManager> class friend access
39 /// allow MemberLteCcmRrcSapUser<NoOpComponentCarrierManager> class friend access
41 /// allow MemberLteCcmMacSapUser<NoOpComponentCarrierManager> class friend access
43
44 public:
47 /**
48 * \brief Get the type ID.
49 * \return the object TypeId
50 */
51 static TypeId GetTypeId();
52
53 protected:
54 // Inherited methods
55 void DoInitialize() override;
56 void DoDispose() override;
57 void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults) override;
58 /**
59 * \brief Add UE.
60 * \param rnti the RNTI
61 * \param state the state
62 */
63 virtual void DoAddUe(uint16_t rnti, uint8_t state);
64 /**
65 * \brief Add LC.
66 * \param lcInfo the LC info
67 * \param msu the MSU
68 */
69 virtual void DoAddLc(LteEnbCmacSapProvider::LcInfo lcInfo, LteMacSapUser* msu);
70 /**
71 * \brief Setup data radio bearer.
72 * \param bearer the radio bearer
73 * \param bearerId the bearerID
74 * \param rnti the RNTI
75 * \param lcid the LCID
76 * \param lcGroup the LC group
77 * \param msu the MSU
78 * \returns std::vector<LteCcmRrcSapProvider::LcsConfig>
79 */
80 virtual std::vector<LteCcmRrcSapProvider::LcsConfig> DoSetupDataRadioBearer(EpsBearer bearer,
81 uint8_t bearerId,
82 uint16_t rnti,
83 uint8_t lcid,
84 uint8_t lcGroup,
85 LteMacSapUser* msu);
86 /**
87 * \brief Transmit PDU.
88 * \param params the transmit PDU parameters
89 */
91 /**
92 * \brief Report buffer status.
93 * \param params the report buffer status parameters
94 */
96 /**
97 * \brief Notify transmit opportunity.
98 *
99 * \param txOpParams the LteMacSapUser::TxOpportunityParameters
100 */
102 /**
103 * \brief Receive PDU.
104 *
105 * \param rxPduParams the LteMacSapUser::ReceivePduParameters
106 */
107 virtual void DoReceivePdu(LteMacSapUser::ReceivePduParameters rxPduParams);
108 /// Notify HARQ delivery failure
109 virtual void DoNotifyHarqDeliveryFailure();
110 /**
111 * \brief Remove UE.
112 * \param rnti the RNTI
113 */
114 virtual void DoRemoveUe(uint16_t rnti);
115 /**
116 * \brief Release data radio bearer.
117 * \param rnti the RNTI
118 * \param lcid the LCID
119 * \returns updated data radio bearer list
120 */
121 virtual std::vector<uint8_t> DoReleaseDataRadioBearer(uint16_t rnti, uint8_t lcid);
122 /**
123 * \brief Configure the signal bearer.
124 * \param lcinfo the LteEnbCmacSapProvider::LcInfo
125 * \param msu the MSU
126 * \returns updated data radio bearer list
127 */
129 LteMacSapUser* msu);
130 /**
131 * \brief Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.
132 * \param bsr the BSR
133 * \param componentCarrierId the component carrier ID
134 */
135 virtual void DoUlReceiveMacCe(MacCeListElement_s bsr, uint8_t componentCarrierId);
136 /**
137 * \brief Forward uplink SR to CCM, called by MAC through CCM SAP interface.
138 * \param rnti RNTI of the UE that requested SR
139 * \param componentCarrierId the component carrier ID that forwarded the SR
140 */
141 virtual void DoUlReceiveSr(uint16_t rnti, uint8_t componentCarrierId);
142 /**
143 * \brief Function implements the function of the SAP interface of CCM instance which is used by
144 * MAC to notify the PRB occupancy reported by scheduler.
145 * \param prbOccupancy the PRB occupancy
146 * \param componentCarrierId the component carrier ID
147 */
148 virtual void DoNotifyPrbOccupancy(double prbOccupancy, uint8_t componentCarrierId);
149
150 protected:
151 std::map<uint8_t, double>
152 m_ccPrbOccupancy; //!< The physical resource block occupancy per carrier.
153
154}; // end of class NoOpComponentCarrierManager
155
156/**
157 * \brief Component carrier manager implementation that splits traffic equally among carriers.
158 */
160{
161 public:
164 /**
165 * \brief Get the type ID.
166 * \return the object TypeId
167 */
168 static TypeId GetTypeId();
169
170 protected:
171 // Inherited methods
173 void DoUlReceiveMacCe(MacCeListElement_s bsr, uint8_t componentCarrierId) override;
174 void DoUlReceiveSr(uint16_t rnti, uint8_t componentCarrierId) override;
175
176 private:
177 uint8_t m_lastCcIdForSr{0}; //!< Last CCID to which a SR was routed
178}; // end of class RrComponentCarrierManager
179
180} // end of namespace ns3
181
182#endif /* NO_OP_COMPONENT_CARRIER_MANAGER_H */
EnbMacMemberLteMacSapProvider class.
This class contains the specification of EPS Bearers.
Definition eps-bearer.h:80
Service Access Point (SAP) offered by the Component Carrier Manager (CCM) instance to the eNodeB RRC ...
The class implements Component Carrier Manager (CCM) that operates using the Component Carrier Manage...
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition lte-mac-sap.h:85
MemberLteCcmMacSapUser class.
MemberLteCcmRrcSapProvider class.
MemberLteCcmRrcSapUser class.
The default component carrier manager that forwards all traffic, the uplink and the downlink,...
void DoDispose() override
Destructor implementation.
virtual LteMacSapUser * DoConfigureSignalBearer(LteEnbCmacSapProvider::LcInfo lcinfo, LteMacSapUser *msu)
Configure the signal bearer.
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 ...
virtual void DoTransmitPdu(LteMacSapProvider::TransmitPduParameters params)
Transmit PDU.
void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults) override
Implementation of ReportUeMeas.
virtual void DoReportBufferStatus(LteMacSapProvider::ReportBufferStatusParameters params)
Report buffer status.
virtual void DoAddLc(LteEnbCmacSapProvider::LcInfo lcInfo, LteMacSapUser *msu)
Add LC.
virtual void DoRemoveUe(uint16_t rnti)
Remove UE.
virtual void DoAddUe(uint16_t rnti, uint8_t state)
Add UE.
virtual void DoNotifyTxOpportunity(LteMacSapUser::TxOpportunityParameters txOpParams)
Notify transmit opportunity.
virtual void DoUlReceiveSr(uint16_t rnti, uint8_t componentCarrierId)
Forward uplink SR to CCM, called by MAC through CCM SAP interface.
virtual void DoUlReceiveMacCe(MacCeListElement_s bsr, uint8_t componentCarrierId)
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.
virtual std::vector< uint8_t > DoReleaseDataRadioBearer(uint16_t rnti, uint8_t lcid)
Release data radio bearer.
virtual void DoReceivePdu(LteMacSapUser::ReceivePduParameters rxPduParams)
Receive PDU.
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.
void DoInitialize() override
Initialize() implementation.
virtual void DoNotifyHarqDeliveryFailure()
Notify HARQ delivery failure.
Component carrier manager implementation that splits traffic equally among carriers.
void DoUlReceiveMacCe(MacCeListElement_s bsr, uint8_t componentCarrierId) override
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.
void DoUlReceiveSr(uint16_t rnti, uint8_t componentCarrierId) override
Forward uplink SR to CCM, called by MAC through CCM SAP interface.
uint8_t m_lastCcIdForSr
Last CCID to which a SR was routed.
void DoReportBufferStatus(LteMacSapProvider::ReportBufferStatusParameters params) override
Report buffer status.
a unique identifier for an interface.
Definition type-id.h:48
Manages all the radio bearer information possessed by the ENB RRC for a single UE.
Definition lte-enb-rrc.h:57
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Logical Channel information to be passed to CmacSapProvider::ConfigureLc.
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.
See section 4.3.14 macCEListElement.