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

Algorithm for distributing the assigned bytes to the different LCGs/LCs of a UE based on the resource type and the ERAB guaranteed bit rate. More...

#include "nr-mac-scheduler-lc-qos.h"

+ Inheritance diagram for ns3::NrMacSchedulerLcQos:
+ Collaboration diagram for ns3::NrMacSchedulerLcQos:

Public Member Functions

 NrMacSchedulerLcQos ()
 NrMacSchedulerLcQos constructor.
 
 ~NrMacSchedulerLcQos () override
 NrMacSchedulerLcQos deconstructor.
 
std::vector< AssignationAssignBytesToDlLC (const std::unordered_map< uint8_t, LCGPtr > &ueLCG, uint32_t tbs, Time slotPeriod) const override
 Method to decide how to distribute the assigned bytes to the different LCs for the DL direction. This algorithm is based on the resource type and the guaranteed bitrate information of an LC. In particular, the operation is divided in 4 parts:
 
std::vector< AssignationAssignBytesToUlLC (const std::unordered_map< uint8_t, LCGPtr > &ueLCG, uint32_t tbs) const override
 Method to decide how to distribute the assigned bytes to the different LCs for the UL direction. Due to the scheduler limitation the applied algorithm distributes bytes in a RR fashion (see NrMacSchedulerLcAlgorithm).
 
- Public Member Functions inherited from ns3::NrMacSchedulerLcAlgorithm
 NrMacSchedulerLcAlgorithm ()
 NrMacSchedulerLcAlgorithm constructor.
 
 ~NrMacSchedulerLcAlgorithm () override
 ~NrMacSchedulerLc deconstructor
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::NrMacSchedulerLcAlgorithm
static TypeId GetTypeId ()
 GetTypeId.
 

Detailed Description

Algorithm for distributing the assigned bytes to the different LCGs/LCs of a UE based on the resource type and the ERAB guaranteed bit rate.

Introspection did not find any typical Config paths.
No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 56 bytes (on a 64-bit architecture).

Definition at line 20 of file nr-mac-scheduler-lc-qos.h.

Constructor & Destructor Documentation

◆ NrMacSchedulerLcQos()

ns3::NrMacSchedulerLcQos::NrMacSchedulerLcQos ( )

NrMacSchedulerLcQos constructor.

Definition at line 20 of file nr-mac-scheduler-lc-qos.cc.

◆ ~NrMacSchedulerLcQos()

ns3::NrMacSchedulerLcQos::~NrMacSchedulerLcQos ( )
override

NrMacSchedulerLcQos deconstructor.

Definition at line 26 of file nr-mac-scheduler-lc-qos.cc.

Member Function Documentation

◆ AssignBytesToDlLC()

std::vector< NrMacSchedulerLcAlgorithm::Assignation > ns3::NrMacSchedulerLcQos::AssignBytesToDlLC ( const std::unordered_map< uint8_t, LCGPtr > &  ueLCG,
uint32_t  tbs,
Time  slotPeriod 
) const
overridevirtual

Method to decide how to distribute the assigned bytes to the different LCs for the DL direction. This algorithm is based on the resource type and the guaranteed bitrate information of an LC. In particular, the operation is divided in 4 parts:

  1. The first part creates two lists, one with the GBR/DC-GBR active LCs that have their ERAB guaranteed bit rate requirements set and one with all the active LCs.
  2. In case there more than 1 GBR/DC-GBR active LCs that have their ERAB guaranteed bit rate requirements set, and their total requirements exceed the assigned bytes (tbs), then the algorithm assigns equally all the assigned bytes in RR fashion to these GBR/DC-GBR LCs.
  3. In case their total requirements are less than the assigned bytes, the algorithm assigns to each LC the minimum among the ERAB guaranteed bit rate and the RLC buffer size.
  4. The rest of the bytes, if any, are assigned in the rest of the LCs in RR fashion.
Parameters
ueLCGLCG of an UE
tbsTBS to divide between the LCG/LC
Returns
A vector of Assignation

Implements ns3::NrMacSchedulerLcAlgorithm.

Definition at line 40 of file nr-mac-scheduler-lc-qos.cc.

◆ AssignBytesToUlLC()

std::vector< NrMacSchedulerLcAlgorithm::Assignation > ns3::NrMacSchedulerLcQos::AssignBytesToUlLC ( const std::unordered_map< uint8_t, LCGPtr > &  ueLCG,
uint32_t  tbs 
) const
overridevirtual

Method to decide how to distribute the assigned bytes to the different LCs for the UL direction. Due to the scheduler limitation the applied algorithm distributes bytes in a RR fashion (see NrMacSchedulerLcAlgorithm).

Parameters
ueLCGLCG of an UE
tbsTBS to divide between the LCG/LC
Returns
A vector of Assignation

Implements ns3::NrMacSchedulerLcAlgorithm.

Definition at line 185 of file nr-mac-scheduler-lc-qos.cc.

◆ GetTypeId()

TypeId ns3::NrMacSchedulerLcQos::GetTypeId ( )
static

Get the type ID.

Returns
the object TypeId

Definition at line 31 of file nr-mac-scheduler-lc-qos.cc.


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