QoSAwareScheduler Class Reference¶
|
Simu5G
|
#include <QoSAwareScheduler.h>
Static Public Member Functions | |
| static std::vector< const DrbQosProfile * > | collectUlGroupMembers (const std::map< DrbKey, DrbQosProfile > &drbQosMap, LteMacBase *mac, MacNodeId ueId, Lcg lcg) |
| static DrbQosProfile | aggregateQosProfiles (const std::vector< const DrbQosProfile * > &members) |
Detailed Description
QoS-aware proportional-fair scheduler: scores active CIDs with QoS weights derived from the per-DRB QoS profile. The weight reads the GBR flag, the packet delay budget and the priority level; the profile's packet error rate reaches the scheduler and is carried through a group's aggregate, but does not enter the weight. The profiles come from the MAC's DRB QoS map (see LteMacEnb::getDrbQosMap()), which RRC fills from the bearer configuration delivered to it (the staticDrbs parameter of the ~BearerConfigurator module).
A CID whose bearer has no QoS profile is scheduled with a neutral weight (plain proportional fair).
Member Function Documentation
◆ collectUlGroupMembers()
|
static |
The QoS profiles of the DRBs behind one uplink logical channel group: the join of the MAC's configured-DRB profiles with its established channels' group assignment. A configured-but-unestablished DRB has no channel config yet and is skipped, so the result is empty when no established DRB of the UE belongs to the group.
◆ aggregateQosProfiles()
|
static |
The weight-relevant profile of a group of bearers: the most demanding member on each axis – the lowest (= most important) priority level, GBR if any member is GBR, the tightest delay budget and error target. Used to weigh an uplink (UE, LCG) pseudo-connection by the DRBs behind it.
Generated by