LcgScheduler Class Reference

Simu5G: LcgScheduler Class Reference
Simu5G

#include <LcgScheduler.h>

Inheritance diagram for LcgScheduler:
[legend]

Classes

struct  SortedDesc

Public Member Functions

 LcgScheduler (LteMacUe *mac)
virtual ~LcgScheduler ()
virtual void setUeUlScheduler (LteSchedulerUeUl *ueScheduler)

Protected Types

typedef std::list< MacCid > CidList
 Cid List.

Protected Member Functions

virtual bool checkForPendingAdditionalBsr (Direction grantDir, Lcg lcg)

Protected Attributes

opp_component_ptr< LteMacUe > mac_
 MAC module, used to get parameters from NED.
LteSchedulerUeUl * ueScheduler_ = nullptr
 Associated LteSchedulerUeUl (it is the one who creates the LteScheduler)

Detailed Description

UE-side logical channel prioritization (LCP): divides one TTI's UL grant among the UE's outgoing connections, at the granularity Simu5G models – the logical channel group stands in for the per-channel priority of TS 36.321/38.321 sec 5.4.3.1. Groups are served in increasing LCG-index order (strict priority; the PBR token bucket, the full LCP's protection of lower priorities, is not modeled). Within a group the backlogged connections are served round-robin, one SDU (LTE FI) or one PDU carve (NR SO) per turn, so equal-priority connections are served equally and a connection's share does not depend on where bearer-establishment order placed it in the registration map.

Member Typedef Documentation

◆ CidList

typedef std::list<MacCid> CidList
protected

Cid List.

Constructor & Destructor Documentation

◆ LcgScheduler()

LcgScheduler ( LteMacUe * mac)

Default constructor.

References LcgScheduler().

Referenced by LcgScheduler().

◆ ~LcgScheduler()

virtual ~LcgScheduler ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ setUeUlScheduler()

virtual void setUeUlScheduler ( LteSchedulerUeUl * ueScheduler)
inlinevirtual

Initializes the LteScheduler.

Parameters
ueSchedulerUE scheduler

References ueScheduler_.

◆ checkForPendingAdditionalBsr()

virtual bool checkForPendingAdditionalBsr ( Direction grantDir,
Lcg lcg )
inlineprotectedvirtual

Hook, called once per LCG during schedule(): returns true if the current UL grant must be withheld so that it can carry the BSR of an active D2D connection instead. Default implementation never withholds (no-op); overridden by LcgSchedulerD2D.

Reimplemented in LcgSchedulerD2D.

Member Data Documentation

◆ mac_

opp_component_ptr<LteMacUe> mac_
protected

MAC module, used to get parameters from NED.

◆ ueScheduler_

LteSchedulerUeUl* ueScheduler_ = nullptr
protected

Associated LteSchedulerUeUl (it is the one who creates the LteScheduler)

Referenced by setUeUlScheduler().