5G-LENA nr-v3.3-81-g75c7590d
The 5G/NR module for the ns-3 simulator
|
Bandwidth part manager that coordinates traffic over different bandwidth parts. More...
#include "bwp-manager-gnb.h"
Public Member Functions | |
uint8_t | GetBwpIndex (uint16_t rnti, uint8_t lcid) |
Get the bwp index for the RNTI and LCID. | |
uint8_t | PeekBwpIndex (uint16_t rnti, uint8_t lcid) const |
Get the bwp index for the RNTI and LCID. | |
uint8_t | RouteIngoingCtrlMsgs (const Ptr< NrControlMessage > &msg, uint8_t sourceBwpId) const |
Decide the BWP for the control message received. | |
uint8_t | RouteOutgoingCtrlMsg (const Ptr< NrControlMessage > &msg, uint8_t sourceBwpId) const |
Route the outgoing messages to the right BWP. | |
void | SetBwpManagerAlgorithm (const Ptr< BwpManagerAlgorithm > &algorithm) |
Set the algorithm. | |
void | SetOutputLink (uint32_t sourceBwp, uint32_t outputBwp) |
Set a mapping between two BWP. | |
Public Member Functions inherited from ns3::NrGnbComponentCarrierManager | |
virtual NrCcmMacSapUser * | GetNrCcmMacSapUser () |
This function returns a pointer to the NrCcmMacSapUser interface, which is used by MAC to communicate to CCM when e.g. UL buffer status report is received, or to notify CCM about PRB occupancy, and similar. Functions that are specific for the communication between MAC and CCM. | |
virtual NrCcmRrcSapProvider * | GetNrCcmRrcSapProvider () |
Export the "provider" part of the NrComponentCarrier Management SAP interface. | |
virtual NrMacSapProvider * | GetNrMacSapProvider () |
Returns the pointer to the NrMacSapProvider interface, the provider of MAC, which is this new architecture served by NrGnbComponentCarrierManager object which will behave as a proxy, and will forward calls between to MAC objects of component carriers based on the logic implemented in the specific component carrier manager. | |
virtual bool | SetCcmMacSapProviders (uint8_t componentCarrierId, NrCcmMacSapProvider *sap) |
Set NrCcmMacSapProvider interface for the MAC object of the specified component carrier. Through this interface CCM communicates with MAC, e.g. it notifies MAC of the specific carrier when to scheduler UL BSR. | |
virtual bool | SetMacSapProvider (uint8_t componentCarrierId, NrMacSapProvider *sap) |
Set NrMacSapProvider interface for the MAC object of the specified component carrier. | |
virtual void | SetNrCcmRrcSapUser (NrCcmRrcSapUser *s) |
Set the "user" part of the NrComponentCarrier Management SAP interface that this NrComponentCarrier algorithm instance will interact with. | |
virtual void | SetNumberOfComponentCarriers (uint16_t noOfComponentCarriers) |
Sets the total number of component carriers. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Static Public Member Functions inherited from ns3::NrRrComponentCarrierManager | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::NrNoOpComponentCarrierManager | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::NrGnbComponentCarrierManager | |
static TypeId | GetTypeId () |
Get the type ID. | |
Protected Member Functions | |
void | DoNotifyTxOpportunity (NrMacSapUser::TxOpportunityParameters txOpParams) override |
Notify transmit opportunity. | |
void | DoReportBufferStatus (NrMacSapProvider::ReportBufferStatusParameters params) override |
Report buffer status. | |
std::vector< NrCcmRrcSapProvider::LcsConfig > | DoSetupDataRadioBearer (NrEpsBearer bearer, uint8_t bearerId, uint16_t rnti, uint8_t lcid, uint8_t lcGroup, NrMacSapUser *msu) override |
Overload DoSetupBadaRadioBearer to connect directly to Rlc retransmission buffer size. | |
void | DoUlReceiveMacCe (nr::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 SR to the right MAC instance through CCM SAP interface. | |
Protected Member Functions inherited from ns3::NrRrComponentCarrierManager | |
void | DoReportBufferStatus (NrMacSapProvider::ReportBufferStatusParameters params) override |
Report buffer status. | |
void | DoUlReceiveMacCe (nr::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. | |
Protected Member Functions inherited from ns3::NrNoOpComponentCarrierManager | |
virtual void | DoAddLc (NrGnbCmacSapProvider::LcInfo lcInfo, NrMacSapUser *msu) |
Add LC. | |
virtual void | DoAddUe (uint16_t rnti, uint8_t state) |
Add UE. | |
virtual NrMacSapUser * | DoConfigureSignalBearer (NrGnbCmacSapProvider::LcInfo lcinfo, NrMacSapUser *msu) |
Configure the signal bearer. | |
void | DoDispose () override |
void | DoInitialize () override |
virtual void | DoNotifyHarqDeliveryFailure () |
Notify HARQ delivery failure. | |
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 the PRB occupancy reported by scheduler. | |
virtual void | DoReceivePdu (NrMacSapUser::ReceivePduParameters rxPduParams) |
Receive PDU. | |
virtual std::vector< uint8_t > | DoReleaseDataRadioBearer (uint16_t rnti, uint8_t lcid) |
Release data radio bearer. | |
virtual void | DoRemoveUe (uint16_t rnti) |
Remove UE. | |
void | DoReportUeMeas (uint16_t rnti, NrRrcSap::MeasResults measResults) override |
Implementation of ReportUeMeas. | |
virtual void | DoTransmitPdu (NrMacSapProvider::TransmitPduParameters params) |
Transmit PDU. | |
Protected Member Functions inherited from ns3::NrGnbComponentCarrierManager | |
void | DoDispose () override |
Additional Inherited Members | |
Protected Attributes inherited from ns3::NrNoOpComponentCarrierManager | |
std::map< uint8_t, double > | m_ccPrbOccupancy |
The physical resource block occupancy per carrier. | |
Protected Attributes inherited from ns3::NrGnbComponentCarrierManager | |
std::map< uint8_t, NrCcmMacSapProvider * > | m_ccmMacSapProviderMap |
NrCcmMacSapUser * | m_ccmMacSapUser |
NrCcmRrcSapProvider * | m_ccmRrcSapProvider |
NrCcmRrcSapUser * | m_ccmRrcSapUser |
NrMacSapProvider * | m_macSapProvider |
std::map< uint8_t, NrMacSapProvider * > | m_macSapProvidersMap |
A map of pointers to real SAP interfaces of MAC instances. | |
uint16_t | m_noOfComponentCarriers |
Ptr< NrGnbRrc > | m_rrc |
A pointer to the RRC instance of this eNb. | |
std::map< uint16_t, NrUeInfo > | m_ueInfo |
The map from RNTI to UE information. | |
Bandwidth part manager that coordinates traffic over different bandwidth parts.
ns3::BwpManagerGnb is accessible through the following paths with Config::Set and Config::Connect:
/NodeList/[i]/DeviceList/[i]/$ns3::NrGnbNetDevice/NrGnbComponentCarrierManager/$ns3::BwpManagerGnb
/NodeList/[i]/DeviceList/[i]/$ns3::NrGnbNetDevice/NrGnbComponentCarrierManager/$ns3::NrNoOpComponentCarrierManager/$ns3::BwpManagerGnb
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/NrGnbComponentCarrierManager/$ns3::BwpManagerGnb
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/NrGnbComponentCarrierManager/$ns3::NrNoOpComponentCarrierManager/$ns3::BwpManagerGnb
No TraceSources are defined for this type.
Size of this type is 368 bytes (on a 64-bit architecture).
Definition at line 26 of file bwp-manager-gnb.h.
ns3::BwpManagerGnb::BwpManagerGnb | ( | ) |
Definition at line 21 of file bwp-manager-gnb.cc.
|
override |
Definition at line 27 of file bwp-manager-gnb.cc.
|
overrideprotectedvirtual |
Notify transmit opportunity.
txOpParams | the NrMacSapUser::TxOpportunityParameters |
Reimplemented from ns3::NrNoOpComponentCarrierManager.
Definition at line 180 of file bwp-manager-gnb.cc.
References ns3::NrMacSapUser::TxOpportunityParameters::lcid, and ns3::NrMacSapUser::TxOpportunityParameters::rnti.
|
overrideprotectedvirtual |
Report buffer status.
params | the report buffer status parameters |
Reimplemented from ns3::NrNoOpComponentCarrierManager.
Definition at line 163 of file bwp-manager-gnb.cc.
References ns3::NrMacSapProvider::ReportBufferStatusParameters::lcid, and ns3::NrMacSapProvider::ReportBufferStatusParameters::rnti.
|
overrideprotectedvirtual |
Overload DoSetupBadaRadioBearer to connect directly to Rlc retransmission buffer size.
Reimplemented from ns3::NrNoOpComponentCarrierManager.
Definition at line 66 of file bwp-manager-gnb.cc.
|
overrideprotectedvirtual |
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.
bsr | the BSR |
componentCarrierId | the component carrier ID |
Reimplemented from ns3::NrNoOpComponentCarrierManager.
Definition at line 195 of file bwp-manager-gnb.cc.
References ns3::nr::MacCeListElement_s::m_rnti.
|
overrideprotectedvirtual |
Forward SR to the right MAC instance through CCM SAP interface.
rnti | RNTI of the UE that requested the SR |
componentCarrierId | the component carrier ID which received the SR |
Reimplemented from ns3::NrNoOpComponentCarrierManager.
Definition at line 218 of file bwp-manager-gnb.cc.
uint8_t ns3::BwpManagerGnb::GetBwpIndex | ( | uint16_t | rnti, |
uint8_t | lcid | ||
) |
Get the bwp index for the RNTI and LCID.
rnti | The RNTI of the user |
lcid | The LCID of the flow that we want to know the bwp index |
Definition at line 86 of file bwp-manager-gnb.cc.
|
static |
Definition at line 33 of file bwp-manager-gnb.cc.
uint8_t ns3::BwpManagerGnb::PeekBwpIndex | ( | uint16_t | rnti, |
uint8_t | lcid | ||
) | const |
Get the bwp index for the RNTI and LCID.
rnti | The RNTI of the user |
lcid | The LCID of the flow that we want to know the bwp index |
Why this method? I wonder if you can imagine it... Hint: Think in a RR algorithm that returns a different bwp index for every call...
Definition at line 103 of file bwp-manager-gnb.cc.
uint8_t ns3::BwpManagerGnb::RouteIngoingCtrlMsgs | ( | const Ptr< NrControlMessage > & | msg, |
uint8_t | sourceBwpId | ||
) | const |
Decide the BWP for the control message received.
msg | Message |
sourceBwpId | BWP Id from which this message come from. |
The routing is made following the bandwidth part reported in the message.
Definition at line 121 of file bwp-manager-gnb.cc.
uint8_t ns3::BwpManagerGnb::RouteOutgoingCtrlMsg | ( | const Ptr< NrControlMessage > & | msg, |
uint8_t | sourceBwpId | ||
) | const |
Route the outgoing messages to the right BWP.
msg | the message |
sourceBwpId | the source bwp of the message |
The routing is made by following the mapping provided through the function SetOutputLink. If no mapping has been installed, or if the sourceBwpId provided is not in the mapping, then forward the message back to the originating BWP.
Definition at line 131 of file bwp-manager-gnb.cc.
void ns3::BwpManagerGnb::SetBwpManagerAlgorithm | ( | const Ptr< BwpManagerAlgorithm > & | algorithm | ) |
Set the algorithm.
algorithm | pointer to the algorithm |
Definition at line 48 of file bwp-manager-gnb.cc.
void ns3::BwpManagerGnb::SetOutputLink | ( | uint32_t | sourceBwp, |
uint32_t | outputBwp | ||
) |
Set a mapping between two BWP.
sourceBwp | The messages that come from this value... |
outputBwp | ... will get routed in this bandwidth part. |
Call it for each mapping you want to install.
Definition at line 156 of file bwp-manager-gnb.cc.