5G-LENA nr-v3.3-81-g75c7590d
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
ns3::BwpManagerGnb Class Reference

Bandwidth part manager that coordinates traffic over different bandwidth parts. More...

#include "bwp-manager-gnb.h"

+ Inheritance diagram for ns3::BwpManagerGnb:
+ Collaboration diagram for ns3::BwpManagerGnb:

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 NrCcmMacSapUserGetNrCcmMacSapUser ()
 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 NrCcmRrcSapProviderGetNrCcmRrcSapProvider ()
 Export the "provider" part of the NrComponentCarrier Management SAP interface.
 
virtual NrMacSapProviderGetNrMacSapProvider ()
 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::LcsConfigDoSetupDataRadioBearer (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 NrMacSapUserDoConfigureSignalBearer (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
 
NrCcmMacSapUserm_ccmMacSapUser
 
NrCcmRrcSapProviderm_ccmRrcSapProvider
 
NrCcmRrcSapUserm_ccmRrcSapUser
 
NrMacSapProviderm_macSapProvider
 
std::map< uint8_t, NrMacSapProvider * > m_macSapProvidersMap
 A map of pointers to real SAP interfaces of MAC instances.
 
uint16_t m_noOfComponentCarriers
 
Ptr< NrGnbRrcm_rrc
 A pointer to the RRC instance of this eNb.
 
std::map< uint16_t, NrUeInfom_ueInfo
 The map from RNTI to UE information.
 

Detailed Description

Bandwidth part manager that coordinates traffic over different bandwidth parts.

Config Paths

ns3::BwpManagerGnb is accessible through the following paths with Config::Set and Config::Connect:

Attributes

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.

Constructor & Destructor Documentation

◆ BwpManagerGnb()

ns3::BwpManagerGnb::BwpManagerGnb ( )

Definition at line 21 of file bwp-manager-gnb.cc.

◆ ~BwpManagerGnb()

ns3::BwpManagerGnb::~BwpManagerGnb ( )
override

Definition at line 27 of file bwp-manager-gnb.cc.

Member Function Documentation

◆ DoNotifyTxOpportunity()

void ns3::BwpManagerGnb::DoNotifyTxOpportunity ( NrMacSapUser::TxOpportunityParameters  txOpParams)
overrideprotectedvirtual

Notify transmit opportunity.

Parameters
txOpParamsthe 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.

◆ DoReportBufferStatus()

void ns3::BwpManagerGnb::DoReportBufferStatus ( NrMacSapProvider::ReportBufferStatusParameters  params)
overrideprotectedvirtual

Report buffer status.

Parameters
paramsthe 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.

◆ DoSetupDataRadioBearer()

std::vector< NrCcmRrcSapProvider::LcsConfig > ns3::BwpManagerGnb::DoSetupDataRadioBearer ( NrEpsBearer  bearer,
uint8_t  bearerId,
uint16_t  rnti,
uint8_t  lcid,
uint8_t  lcGroup,
NrMacSapUser msu 
)
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.

◆ DoUlReceiveMacCe()

void ns3::BwpManagerGnb::DoUlReceiveMacCe ( nr::MacCeListElement_s  bsr,
uint8_t  componentCarrierId 
)
overrideprotectedvirtual

Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.

Parameters
bsrthe BSR
componentCarrierIdthe component carrier ID

Reimplemented from ns3::NrNoOpComponentCarrierManager.

Definition at line 195 of file bwp-manager-gnb.cc.

References ns3::nr::MacCeListElement_s::m_rnti.

◆ DoUlReceiveSr()

void ns3::BwpManagerGnb::DoUlReceiveSr ( uint16_t  rnti,
uint8_t  componentCarrierId 
)
overrideprotectedvirtual

Forward SR to the right MAC instance through CCM SAP interface.

Parameters
rntiRNTI of the UE that requested the SR
componentCarrierIdthe component carrier ID which received the SR

Reimplemented from ns3::NrNoOpComponentCarrierManager.

Definition at line 218 of file bwp-manager-gnb.cc.

◆ GetBwpIndex()

uint8_t ns3::BwpManagerGnb::GetBwpIndex ( uint16_t  rnti,
uint8_t  lcid 
)

Get the bwp index for the RNTI and LCID.

Parameters
rntiThe RNTI of the user
lcidThe LCID of the flow that we want to know the bwp index
Returns
The index of the BWP in which that LCID should go

Definition at line 86 of file bwp-manager-gnb.cc.

◆ GetTypeId()

TypeId ns3::BwpManagerGnb::GetTypeId ( )
static

Definition at line 33 of file bwp-manager-gnb.cc.

◆ PeekBwpIndex()

uint8_t ns3::BwpManagerGnb::PeekBwpIndex ( uint16_t  rnti,
uint8_t  lcid 
) const

Get the bwp index for the RNTI and LCID.

Parameters
rntiThe RNTI of the user
lcidThe LCID of the flow that we want to know the bwp index
Returns
The index of the BWP in which that LCID should go

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.

◆ RouteIngoingCtrlMsgs()

uint8_t ns3::BwpManagerGnb::RouteIngoingCtrlMsgs ( const Ptr< NrControlMessage > &  msg,
uint8_t  sourceBwpId 
) const

Decide the BWP for the control message received.

Parameters
msgMessage
sourceBwpIdBWP Id from which this message come from.

The routing is made following the bandwidth part reported in the message.

Returns
the BWP Id to which this message should be routed to.

Definition at line 121 of file bwp-manager-gnb.cc.

◆ RouteOutgoingCtrlMsg()

uint8_t ns3::BwpManagerGnb::RouteOutgoingCtrlMsg ( const Ptr< NrControlMessage > &  msg,
uint8_t  sourceBwpId 
) const

Route the outgoing messages to the right BWP.

Parameters
msgthe message
sourceBwpIdthe 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.

See also
SetOutputLink
Returns
the bwp to which the ctrl messages should be redirected

Definition at line 131 of file bwp-manager-gnb.cc.

◆ SetBwpManagerAlgorithm()

void ns3::BwpManagerGnb::SetBwpManagerAlgorithm ( const Ptr< BwpManagerAlgorithm > &  algorithm)

Set the algorithm.

Parameters
algorithmpointer to the algorithm

Definition at line 48 of file bwp-manager-gnb.cc.

◆ SetOutputLink()

void ns3::BwpManagerGnb::SetOutputLink ( uint32_t  sourceBwp,
uint32_t  outputBwp 
)

Set a mapping between two BWP.

Parameters
sourceBwpThe 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.


The documentation for this class was generated from the following files: