5G-LENA nr-v4.0
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
nr-no-op-component-carrier-manager.h
1// Copyright (c) 2015 Danilo Abrignani
2// Copyright (c) 2016 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3//
4// SPDX-License-Identifier: GPL-2.0-only
5//
6// Authors: Danilo Abrignani <danilo.abrignani@unibo.it>
7// Biljana Bojovic <biljana.bojovic@cttc.es>
9
10#ifndef NR_NO_OP_COMPONENT_CARRIER_MANAGER_H
11#define NR_NO_OP_COMPONENT_CARRIER_MANAGER_H
12
13#include "nr-ccm-rrc-sap.h"
14#include "nr-gnb-component-carrier-manager.h"
15#include "nr-rrc-sap.h"
16
17#include <map>
18
19namespace ns3
20{
21
22class NrUeManager;
24
33{
42
43 public:
50 static TypeId GetTypeId();
51
52 protected:
53 // Inherited methods
54 void DoInitialize() override;
55 void DoDispose() override;
56 void DoReportUeMeas(uint16_t rnti, NrRrcSap::MeasResults measResults) override;
62 virtual void DoAddUe(uint16_t rnti, uint8_t state);
68 virtual void DoAddLc(NrGnbCmacSapProvider::LcInfo lcInfo, NrMacSapUser* msu);
79 virtual std::vector<NrCcmRrcSapProvider::LcsConfig> DoSetupDataRadioBearer(NrEpsBearer bearer,
80 uint8_t bearerId,
81 uint16_t rnti,
82 uint8_t lcid,
83 uint8_t lcGroup,
84 NrMacSapUser* msu);
107 virtual void DoReceivePdu(NrMacSapUser::ReceivePduParameters rxPduParams);
109 virtual void DoNotifyHarqDeliveryFailure();
114 virtual void DoRemoveUe(uint16_t rnti);
121 virtual std::vector<uint8_t> DoReleaseDataRadioBearer(uint16_t rnti, uint8_t lcid);
129 NrMacSapUser* msu);
135 virtual void DoUlReceiveMacCe(nr::MacCeListElement_s bsr, uint8_t componentCarrierId);
141 virtual void DoUlReceiveSr(uint16_t rnti, uint8_t componentCarrierId);
148 virtual void DoNotifyPrbOccupancy(double prbOccupancy, uint8_t componentCarrierId);
149
150 protected:
151 std::map<uint8_t, double>
153
154}; // end of class NrNoOpComponentCarrierManager
155
160{
161 public:
168 static TypeId GetTypeId();
169
170 protected:
171 // Inherited methods
174 void DoUlReceiveMacCe(nr::MacCeListElement_s bsr, uint8_t componentCarrierId) override;
175 void DoUlReceiveSr(uint16_t rnti, uint8_t componentCarrierId) override;
176
177 private:
178 uint8_t m_lastCcIdForSr{0};
179}; // end of class NrRrComponentCarrierManager
180
181} // end of namespace ns3
182
183#endif /* NR_NO_OP_COMPONENT_CARRIER_MANAGER_H */
GnbMacMemberNrMacSapProvider class.
Definition nr-mac-sap.h:191
MemberNrCcmMacSapUser class.
MemberNrCcmRrcSapProvider class.
MemberNrCcmRrcSapUser class.
Service Access Point (SAP) offered by the Component Carrier Manager (CCM) instance to the eNodeB RRC ...
This class contains the specification of EPS Bearers.
The class implements Component Carrier Manager (CCM) that operates using the Component Carrier Manage...
The default component carrier manager that forwards all traffic, the uplink and the downlink,...
virtual void DoTransmitPdu(NrMacSapProvider::TransmitPduParameters params)
Transmit PDU.
virtual void DoAddUe(uint16_t rnti, uint8_t state)
Add UE.
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 DoNotifyTxOpportunity(NrMacSapUser::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 std::vector< NrCcmRrcSapProvider::LcsConfig > DoSetupDataRadioBearer(NrEpsBearer bearer, uint8_t bearerId, uint16_t rnti, uint8_t lcid, uint8_t lcGroup, NrMacSapUser *msu)
Setup data radio bearer.
virtual void DoTransmitBufferStatusReport(NrMacSapProvider::BufferStatusReportParameters params)
Buffer status report.
virtual std::vector< uint8_t > DoReleaseDataRadioBearer(uint16_t rnti, uint8_t lcid)
Release data radio bearer.
virtual NrMacSapUser * DoConfigureSignalBearer(NrGnbCmacSapProvider::LcInfo lcinfo, NrMacSapUser *msu)
Configure the signal bearer.
virtual void DoAddLc(NrGnbCmacSapProvider::LcInfo lcInfo, NrMacSapUser *msu)
Add LC.
virtual void DoReceivePdu(NrMacSapUser::ReceivePduParameters rxPduParams)
Receive PDU.
virtual void DoNotifyHarqDeliveryFailure()
Notify HARQ delivery failure.
virtual void DoRemoveUe(uint16_t rnti)
Remove UE.
void DoReportUeMeas(uint16_t rnti, NrRrcSap::MeasResults measResults) override
Implementation of ReportUeMeas.
virtual void DoUlReceiveMacCe(nr::MacCeListElement_s bsr, uint8_t componentCarrierId)
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.
Component carrier manager implementation that splits traffic equally among carriers.
void DoUlReceiveSr(uint16_t rnti, uint8_t componentCarrierId) override
Forward uplink SR to CCM, called by MAC through CCM SAP interface.
void DoTransmitBufferStatusReport(NrMacSapProvider::BufferStatusReportParameters params) override
Buffer status report.
void DoUlReceiveMacCe(nr::MacCeListElement_s bsr, uint8_t componentCarrierId) override
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.
MeasResults structure.
Definition nr-rrc-sap.h:723
See section 4.3.14 macCEListElement.