7#ifndef NR_GNB_COMPONENT_CARRIER_MANAGER_H
8#define NR_GNB_COMPONENT_CARRIER_MANAGER_H
10#include "nr-ccm-mac-sap.h"
11#include "nr-ccm-rrc-sap.h"
12#include "nr-gnb-cmac-sap.h"
13#include "nr-gnb-rrc.h"
14#include "nr-mac-sap.h"
15#include "nr-rrc-sap.h"
17#include "ns3/object.h"
26class NrCcmRrcSapProvider;
28class NrMacSapProvider;
29class NrGnbCmacSapProvider;
30class NrCcmMacSapProvider;
142 void DoDispose()
override;
157 std::map<uint8_t, NrMacSapUser*>
159 std::map<uint8_t, NrGnbCmacSapProvider::LcInfo>
189 std::map<uint8_t, NrMacSapProvider*>
198 std::map<uint8_t, NrCcmMacSapProvider*>
Service Access Point (SAP) offered by the component carrier manager (CCM) by MAC to CCM.
Service Access Point (SAP) offered by MAC to the component carrier manager (CCM).
Service Access Point (SAP) offered by the Component Carrier Manager (CCM) instance to the eNodeB RRC ...
Service Access Point (SAP) offered by the eNodeB RRC instance to the component carrier manager (CCM) ...
The class implements Component Carrier Manager (CCM) that operates using the Component Carrier Manage...
NrCcmRrcSapProvider * m_ccmRrcSapProvider
NrMacSapProvider * m_macSapProvider
uint16_t m_noOfComponentCarriers
virtual bool SetCcmMacSapProviders(uint8_t componentCarrierId, NrCcmMacSapProvider *sap)
Set NrCcmMacSapProvider interface for the MAC object of the specified component carrier....
virtual NrMacSapProvider * GetNrMacSapProvider()
Returns the pointer to the NrMacSapProvider interface, the provider of MAC, which is this new archite...
NrCcmMacSapUser * m_ccmMacSapUser
static TypeId GetTypeId()
Get the type ID.
virtual void SetNrCcmRrcSapUser(NrCcmRrcSapUser *s)
Set the "user" part of the NrComponentCarrier Management SAP interface that this NrComponentCarrier a...
NrCcmRrcSapUser * m_ccmRrcSapUser
virtual bool SetMacSapProvider(uint8_t componentCarrierId, NrMacSapProvider *sap)
Set NrMacSapProvider interface for the MAC object of the specified component carrier.
virtual void SetNumberOfComponentCarriers(uint16_t noOfComponentCarriers)
Sets the total number of component carriers.
virtual NrCcmMacSapUser * GetNrCcmMacSapUser()
This function returns a pointer to the NrCcmMacSapUser interface, which is used by MAC to communicate...
std::map< uint8_t, NrCcmMacSapProvider * > m_ccmMacSapProviderMap
std::map< uint16_t, NrUeInfo > m_ueInfo
The map from RNTI to UE information.
Ptr< NrGnbRrc > m_rrc
A pointer to the RRC instance of this eNb.
std::map< uint8_t, NrMacSapProvider * > m_macSapProvidersMap
A map of pointers to real SAP interfaces of MAC instances.
virtual NrCcmRrcSapProvider * GetNrCcmRrcSapProvider()
Export the "provider" part of the NrComponentCarrier Management SAP interface.
virtual void DoReportUeMeas(uint16_t rnti, NrRrcSap::MeasResults measResults)=0
Implementation of ReportUeMeas.
Structure to represent UE info.
std::map< uint8_t, NrMacSapUser * > m_ueAttached
Map from LCID to SAP of the RLC instance.
std::map< uint8_t, NrGnbCmacSapProvider::LcInfo > m_rlcLcInstantiated
Logical channel configuration per flow Id (rnti, lcid).
uint8_t m_ueState
RRC states of UE, e.g. CONNECTED_NORMALLY.
uint8_t m_enabledComponentCarrier
The number of enabled component carriers.