Difference between revisions of "GSOC2012LTEScheduling"
|Line 70:||Line 70:|
Ptr<LteHelper> lteHelper = CreateObject<LteHelper> ();
Ptr<LteHelper> lteHelper = CreateObject<LteHelper> ();
lteHelper->SetSchedulerAttribute("nMux", UIntegerValue()); // the maximum number of UE selected by TD scheduler
= Deliverables =
= Deliverables =
Revision as of 15:16, 23 August 2012
LTE Scheduling with the FemtoForum MAC Scheduler API
- Student: Dizhi Zhou
- Mentors: : Nicola Baldo, Marco Miozzo
- Abstract: The ns-3 LTE module released by the LENA project supports the FemtoForum MAC LTE MAC Scheduler Interface Specification for the implementation of MAC schedulers. Currently, only simple Round Robin and Proportional Fair schedulers are supported. This project will develop several main MAC schedulers for LTE. It also includes corresponding test suites and user manual. The complete proposal can be found in here.
- Code: http://code.nsnam.org/dizhizhou/gsoc-lte-mac-scheduler/ns-3-dev
- Midterm report: https://www.nsnam.org/wiki/index.php/GSOC2012LTEScheduling/MidTermReport
- About me: I'm a Ph.D. student in the University of New Brunswick, Canada. My research interests are multipath transmission for video streaming in cooperative wireless network and network simulation. You can find more information about my research in here.
LTE packet scheduler list
Except PSS and TTA, each scheduler has two versions: frequency domain(FD) and time domain(FD). FD scheduler calculates priority metric on each RBG using subband cqi while TD scheduler calculates metric by wideband cqi. In other words, TD scheduler allocates all RBGs to one UE with highest priority metric.
- 1, Maximum Throughput (MT): MT is a channel-aware/QoS-unaware scheduler. In MT, eNB allocates RBG k to UE j with largest instantaneous supportable data rate calculated by subband cqi on this RBG's frequency.
- 2, Blind Equal Throughput (BET): BET is a channel-unaware/QoS-unaware scheduler. It reaches the same throughput for all users, regardless of their radio channel quality. The priority is the reciprocal of past average throughput.
- 3, Throughput to Average (TTA): TTa is a channel-aware/QoS-unaware scheduler. TTA can be considered as a combination of MT and PF. The priority metric equals to expected datarate for UE j at time t on k-th RBG over wideband expected datarate for the UE j at time t. It guarantees that the best RBs are allocated to each user. NOTE: TTA can only be used in frequency domain.
- 4, Adaptive Token Bucket (TBFQ): TBFQ is a channel-aware/QoS-aware scheduler which derives from the leaky-bucket mechanism. It guarantees the fairness by utilizing a shared token bank. In addition, each flow has a token generation rate.The QoS is guaranteed by setting token generation rate to different values (such as Guarantee Bit Rate (GBR) in EPC bearer QoS parameter). In TBFQ, ﬂows belonging to UEs that are suffering from severe interference, and shadowing conditions in particular, will have a higher priority metric.
- 5, Priority set scheduling (PSS): PSS is a joint frequency domain and time domain scheduler. It is also a channel-aware/QoS-aware scheduler. It aims at providing a deﬁned Target Bit Rate (TBR) to all users. Specifically, in TD scheduler part, the scheduler first sets all available users into two sets based on the target bit rate (TBR): set 1: users below TBR, calculate priority metric in BET style; set 2: users above TBR, calculate priority metric in PF style; Users belonged to set 1 have higher priority than ones in set 2. Then TD scheduler will selects N UEs and forward them to FD scheduler which allocates RBGs k to UE j based on two algrorithms: PFsch and CoItA. Details of PFsch and CoItA can be found in  or LTE manual.
for each scheduler s write design documentation of s find reference throughput for s implement s write test code for s write test documentation for s publish code of s in public repository submit code of s for review using the codereview tool end
Because this GSoC project is an extension of current LTE MAC scheduler implementations, the test approach will follow the system test part in , test suites for each scheduler will be created as:
- 1, compare the throughput performance obtained from simulation to the reference throughput. If their values are within a given tolerance, then test is passed.
Test case: one eNB, multiple UEs For single test case, all UEs have same SINR (same distance to eNB) For different test case, each UE has different SINR (different distance to eNB) and different number of UE
- 2, check the fairness of scheduler: compare the throughput ratiro get from simulation to the reference throughput ratio
Test case: one eNB, multiple UEs For single test case, all UEs have different SINR different distance to eNB)
All schedulers developed are components of NS-3 LTE model. How to build and simulate LTE network can be found in here . If you want to use LTE MAC scheduler in this project, following codes can be added in your script:
FD-MT scheduler: lteHelper->SetSchedulerType ("ns3::FdMtFfMacScheduler"); TD-MT scheduler: lteHelper->SetSchedulerType ("ns3::TdMtFfMacScheduler"); TTA scheduler: lteHelper->SetSchedulerType ("ns3::TtaFfMacScheduler"); FD-BET scheduler: lteHelper->SetSchedulerType ("ns3::FdBetFfMacScheduler"); TD-BET scheduler: lteHelper->SetSchedulerType ("ns3::TdBetFfMacScheduler"); FD-TBFQ scheduler: lteHelper->SetSchedulerType ("ns3::FdTbfqFfMacScheduler"); TD-TBFQ scheduler: lteHelper->SetSchedulerType ("ns3::TdTbfqFfMacScheduler"); PSS scheduler: lteHelper->SetSchedulerType ("ns3::PssFfMacScheduler");
In addition, TBFQ and PSS have more parameters than other schedulers. You can define those parameters in following way:
Ptr<LteHelper> lteHelper = CreateObject<LteHelper> (); lteHelper->SetSchedulerAttribute("DebtLimit", IntegerValue(yourvalue)); // default value -625000 bytes (-5Mb) lteHelper->SetSchedulerAttribute("CreditLimit", UintegerValue(yourvalue)); // default value 625000 bytes (5Mb) lteHelper->SetSchedulerAttribute("TokenPoolSize", UintegerValue(yourvalue)); // default value 1 byte lteHelper->SetSchedulerAttribute("CreditableThreshold", UintegerValue(yourvalue)); // default value 0
Ptr<LteHelper> lteHelper = CreateObject<LteHelper> (); lteHelper->SetSchedulerAttribute("nMux", UIntegerValue(yourvalue)); // the maximum number of UE selected by TD scheduler
- LTE MAC scheduler code: TD-MT,TF-MT; FD-TTA; D-BET,TF-BET; TD-TBFQ,TF-TBFQ; TD-PSS;
- Test suites of above schedulers;
- Documentation of above schedulers;
- Week 1 May.21 -- May.27: FD-MT scheduler
- Week 2 May.28 -- Jun.03: TD-MT scheduler
- Week 3 Jun.4 -- Jun.10: FD-TTA scheduler
- Week 4 Jun.11 -- Jun.17: FD-BET scheduler
- Week 5 Jun.18 -- Jun.24: FD-BET scheduler
- Week 6 Jun.25 -- Jul.01: TD-BET scheduler
- Week 7 Jul.02 -- Jul.08: Buffer
- Week 8 Jul.09 -- Jul.15: Mid-term review
- Week 9 Jul.16 -- Jul.22: FD-TBFQ scheduler
- Week 10 Jul.23 -- Jul.29: TD-TBFQ scheduler
- Week 11 Jul.30 -- Aug.5: FD-TBFQ scheduler
- Week 12 Aug.06 -- Aug.12: TD-PSS scheduler
- Week 13 Aug.13 -- Aug.19: Final review
All schedulers will follow the procedures in Development methodology section.
- Week 1 : May.21 -- May.27
* Complete code reading for LTE MAC scheduler and related part. Draw class relationship figure for MAC scheduler. Learning background knowledge of OFDMA * Write design documentation of FD-MT and scheduler framework
- Week 2 : May.28 -- Jun.03
* Complete FD-MT documentation and code and submit it to codereview. * Get review from mentors on FD-MT code.
- Week 3 : Jun.4 -- Jun.10
* Modify FD-MT documentation and code based on mentors' comment * Complete TD-MT documentation and code and submit it to internal code review by mentors * Complete FD-TTA design
- Week 4 : Jun.11 -- Jun.17
* Complete TTA scheduler, including code, testing and documentation * Complete TD-BET and test it in the same SNR testcase. * Complete design document of FD-BET
- Week 5 : Jun.18 -- Jun.24
* Complete FD-BET, including code, same SNR test case
- Week 6 : Jun.25 -- Jul.01
* Modify the MT, TTA and BET codes based on naming style in NS-3 * Propose a proof method for the user throughput calculation in FD-BET different SNR testcase
- Week 7 : Jul.02 -- Jul.08
* Complete all FD-BET test cases and documentations
- Week 8 : Jul.09 -- Jul.15
* Midterm report []
- Week 9 : Jul.16 -- Jul.22
* Read four background papers of FBFQ scheduler in ATM, TDMA and LTE network * Complete first version of FD FBFQ scheduler
- Week 10 : Jul.23 -- Jul.29
* Implement FD FBFQ scheduler for realistic application; several design issues faced, Unnecessary RBG allocation, GBR configuration and RLC packet header calculation * FD FBFQ testsuites for homogeneous traffic flows (traffic with the same sending rate)
- Week 11 : Jul.30 -- Aug.5
* Complete FD TBFQ scheduler, including scheduler codes and testsuites * Complete TD TBFQ scheduler, including scheduler codes and testsuites
- Week 12 : Aug.06 -- Aug.12
* Complete first version of PSS: TD scheduler: TD-BET + TD-PF FD scheduler: CoItA * Complete TBFQ document
- Week 13 : Aug.13 -- Aug.19
* Complete PFsch model in PSS FD scheduler * Complete testcase and document for PSS scheduler
- Week 14 : Aug.20 -- Aug.24
* Final report
I would like to express my special thanks of gratitude to my two mentors, Nicola Baldo and Marco Miozzo, also thanks of Lalith Suresh, Tom Henderson and Biljana Bojovic. Thanks for their valuable comments and helps on my work.
-  F.Capozzi, G.Piro L.A.Grieco, G.Boggia, P.Camarda, "Downlink Packet Scheduling in LTE Cellular Networks: Key Design Issues and a Survey", IEEE Comm. Surveys and Tutorials, to appear.
-  F.A. Bokhari, H. Yanikomeroglu, W.K. Wong, M. Rahman, "Cross-Layer Resource Scheduling for Video Traffic in the Downlink of OFDMA-Based Wireless 4G Networks",EURASIP J. Wirel. Commun. Netw., vol.2009, no.3, pp. 1-10, Jan. 2009.
-  W.K. Wong, H.Y. Tang, V.C.M, Leung, "Token bank fair queuing: a new scheduling algorithm for wireless multimedia services", Int. J. Commun. Syst., vol.17, no.6, pp.591-614, Aug.2004.
-  G.Mongha, K.I. Pedersen, I.Z. Kovacs, P.E. Mogensen, " QoS Oriented Time and Frequency Domain Packet Schedulers for The UTRAN Long Term Evolution", In Proc. IEEE VTC, 2008.
-  ]http://lena.cttc.es/manual/index.html