diff --git a/src/lte/doc/source/lte-design.rst b/src/lte/doc/source/lte-design.rst index 0440dc338..890b97a1d 100644 --- a/src/lte/doc/source/lte-design.rst +++ b/src/lte/doc/source/lte-design.rst @@ -1272,49 +1272,82 @@ The scheduler implements the filtering of the uplink CQIs according to their nat - ``ALL_UL_CQI``: all CQIs are stored in the same internal attibute (i.e., the last CQI received is stored independently from its nature). -Channel QoS Aware Scheduler ---------------------------- +Channel and QoS Aware Scheduler +------------------------------- -Channel QoS Aware (CQA) Scheduler [Bbojovic_sch]_ is LTE downlink scheduling mechanism that considers the head of line (HOL) delay, the GBR parameters and channel quality over -different subbands. The CQA scheduler is based on joint TD and FD scheduling. In the TD (at each TTI) the CQA scheduler groups users by priority. The purpose of -grouping is to enforce the FD scheduling to consider first the flows with highest HOL delay. The grouping metric :math:`m_{td}` for user :math:`j=1,...,N` is defined in the +The Channel and QoS Aware (CQA) Scheduler [Bbojovic_sch]_ is an LTE +MAC downlink scheduling algorithm that considers the head of line +(HOL) delay, the GBR parameters and channel quality over +different subbands. The CQA scheduler is based on joint TD and FD +scheduling. + +In the TD (at each TTI) the CQA scheduler groups users by +priority. The purpose of grouping is to enforce the FD scheduling to +consider first the flows with highest HOL delay. The grouping metric +:math:`m_{td}` for user :math:`j=1,...,N` is defined in the following way: .. math:: m_{td}^{j}(t) = \lceil\frac{d_{hol}^{j}(t)}{g}\rceil \;, -where :math:`d_{hol}^{j}(t)` is head of line delay of flow :math:`j,` while :math:`g` is a grouping parameter which should be choosen according the network characteristics. -Smaller value of :math:`g` may reduce CQA gains in the FD by reducing the users diversity. Contrawise, higher value of :math:`g` enables higher users diversity in FD domain -while :math:`d_{hol}` is taken into account through FD metric. In the FD, the CQA scheduler assigned each RBG :math:`k=1,...,K` to the user :math:`j` that has the maximum -value of the FD metric which we define in the following way: +where :math:`d_{hol}^{j}(t)` is the current value of HOL delay of flow +:math:`j`, and :math:`g` is a grouping parameter that determines +granularity of the groups, i.e. the number of the flows that will be +considered in the FD scheduling iteration. + +The groups of flows selected in the TD iteration are forwarded to the FD +scheduling starting from the flows with the highest value of the +:math:`m_{td}` metric until all RBGs are assigned in the corresponding +TTI. In the FD, for each RBG :math:`k=1,...,K`, the CQA scheduler +assigns the current RBG to the user :math:`j` that has the maximum value of +the FD metric which we define in the following way: .. math:: - m_{fd}^{(k,j)}(t) = m_{QoS}^j(t) * m_{ca}^{k,j}(t) \;, + m_{fd}^{(k,j)}(t) = d_{HOL}^{j}(t) \cdot m_{GBR}^j(t) \cdot m_{ca}^{k,j}(t) \;, -where :math:`m_{QoS}` is the QoS metric that is defined in the following way: +where :math:`m_{GBR}^j(t)` is calculated as follows: .. math:: - m_{QoS}^{j}(t) = d_{hol}*\max(1,GBR^j*m_{BET}^j(t)) \;. + m_{GBR}^j(t)=\frac{GBR^j}{\overline{R^j}(t)}=\frac{GBR^j}{(1-\alpha)\cdot\overline{R^j}(t-1)+\alpha \cdot r^j(t)} \;, -The :math:`m_{QoS}` metric is introduced to provide to all flows the same level of QoS regarding HOL delay and GBR. The :math:`m_{BET}` is the Blind Equal Throughput metric -calculated as follows: +where :math:`GBR^j` is the bit rate specified in EPS bearer of the +flow :math:`j`, :math:`\overline{R^j}(t)` is the past averaged throughput that is calculated with a +moving average, :math:`r^{j}(t)` is the throughput achieved at the +time t, and :math:`\alpha` is a coefficient such that :math:`0 \le \alpha +\le1`. + +For :math:`m_{ca}^{(k,j)}(t)` we consider two different +metrics: :math:`m_{pf}^{(k,j)}(t)` and :math:`m_{ff}^{(k,j)}(t)`. +:math:`m_{pf}` is the Proportional Fair metric which is defined as follows: .. math:: - - m_{BET}^j(t)=\frac{1}{\overline{R^j}(t)}=\frac{1}{(1-\alpha)*\overline{R^j}(t-1)+\alpha*r^j(t)} \;, -:math:`\overline{R^j}(t)` is the past averaged throughput that is calculated with a moving average and :math:`r^{j}` is the -throughput achieved at time t, and :math:`\alpha` is a coefficient such that :math:`0 \le \alpha \le 1`. + m_{pf}^{(k,j)}(t) = \frac{R_e^{(k,j)}}{\overline{R^j}(t)} \;, -The :math:`m_{ca}^{(k,j)}(t)` metric is introduced to add channel awareness and to maximize the resource utilization by assigning resources to the flows that can use -them more efficiently. In order to use some of the channel aware metrics there are two metrics: to use metric based on Proportional Fair metric -(CqaMetric should be set to "CqaPf") or to use metric based on CoIta metric defined in [GMonghal2008]_ (CqaMetric should be set to "CqaFf"). The CqaMetric attribute -can be set in the following way: +where :math:`R_e^{(k,j)}(t)` is the estimated achievable throughput of user +:math:`j` over RBG :math:`k` calculated by the Adaptive Modulation and Coding +(AMC) scheme that maps the channel quality indicator (CQI) value to +the transport block size in bits. + +The other channel awareness metric that we consider is :math:`m_{ff}` which +is proposed in [GMonghal2008]_ and it represents the frequency +selective fading gains over RBG :math:`k` for user :math:`j` and is calculated in +the following way: + +.. math:: + + m_{ff}^{(k,j)}(t) = \frac{CQI^{(k,j)}(t)}{\sum_{k=1}^{K}CQI(t)^{(k,j)}} \;, + +where :math:`CQI^{(k,j)}(t)` is the last reported CQI value from user +:math:`j` for the :math:`k`-th RBG. + +The user can select whether :math:`m_{pf}` or :math:`m_{ff}` is used +by setting the attribute ``ns3::CqaFfMacScheduler::CqaMetric`` +respectively to ``"CqaPf"`` or ``"CqaFf"``. -Config::SetDefault (“ns3::CqaFfMacScheduler::CqaMetric”, StringValue ("CqaFf")); .. _sec-random-access: