NB IoT Schedulers Example Script - a3794110/ns-3-NB-IoT GitHub Wiki
This article offer the description of NB-IoT Schedulers example script and the brief performance validation referred from article Simulating NB-IoT Scheduler: Using ns-3 as an Example.
It is worth mentioning that we only implenent schedulers (SIB1-NB, NPDCCH and NPDSCH/NPUSCH) on eNodeB (We implement RA on both UE and eNodeb; however, we only implement schedulers on eNodeB). In other words, you can only observe the NB-IoT schedulers performance on eNodeB with this project.
The following figure shows the position of our modification on ns-3 LTE module.
This part of project is based on ns-3 LTE module, hence, naming systems of functions are the same as LTE module. (funciton names and using way is same as LTE module) Tables I shows the parameters in this project.
This example script allows user to observe the channel utilization with different number of UEs.
There are two types of simulation scenario of channel utilization statistic build in this script. (T-A + T-B or T-A + T-C which are shown in following figure)
- T-A + T-B: NPDCCH + NPDSCH (Apply DCI to UEs with NPDCCH, then eNodeB trasmits data to UEs with DCI configuration)
- T-A + T-C: NPDCCH + NPUSCH (Apply DCI to UEs with NPDCCH, then UEs trasmits data to eNodeB with DCI configuration)
The statistical result will shown in result log when scheduler called.
Example result log (NPDCCH scheduler schedules 4 UEs first, then NPUSCH scheduler schedule 4 UEs):
-----------------RNTI table size: 4-----------------
RNTI: 8 Rep: 4 StartSf: 2 Offset: 0
RNTI: 7 Rep: 4 StartSf: 2 Offset: 0.125
RNTI: 21 Rep: 4 StartSf: 2 Offset: 0.25
RNTI: 30 Rep: 4 StartSf: 2 Offset: 0.375
----------------------------------------------------
Search Space UE Specific Searching for rnti: 30 Start...
rnti: 30 rep: 4 startsf: 2 offset: 0.375
Search Space UE Specific Searching for rnti: 30 Complete
------------------------------------------------
| DCI(1) for RNTI: 30 in frame 342 subframe 10 |
------------------------------------------------
i_ue: 4
m_rnti size: 4
rnti: 8
rnti: 7
rnti: 21
rnti: 30
------------NPDCCH Statistical Results------------
|UEs |4
|MIB-NB |1
|SIB1-NB |0
|NPSS |1
|NSSS |1
|DCI |4
|Used subframes |7
|Total subframes|12
|Efficiency |58.3333%
--------------------------------------------------
.
.
.
-------------NPDSCH/NPUSCH Scheduler-------------
RNTI: 30
startframe: 387
startsubframe: 8
endframe: 387
endsubframe: 8
N: 1 N_RU: 1 N_Rep: 1 N_slot: 2
---------------------------
| NPUSCH for RNTI: 30 |
---------------------------
------------NPUSCH Statistical Results------------
|UEs |4
|NPUSCH |4
|Used subframes |4
|Total subframes|9
|Efficiency |44.4444%
--------------------------------------------------
We also offer a example output result log called NB-sch-output.dat in this respository.
To run the script, please put the following file into folder, waf.
NB-IoT_scheduler_example.cc
Then run the following command for observing the RA procedure.
./waf --run scratch/NB-IoT_scheduler_example
This example script allow user to modify the simulation parameter with command line.
ch: channel option, 0 for NPDCCH + NPUSCH, 1 for NPDCCH + NPDSCH
R: DCI repetition numbers, read spec 36.213
alpha: offset option, NPDCCH offset, 0 for proposed method, 1 for conventional method
It is worth mentioning that we offer a purposed NPDCCH scheduler method in this script; you can choose use it or conventional method with modifying parameter alpha.
The detail of this purposed method is offered in article Simulating NB-IoT Scheduler: Using ns-3 as an Example.
For more detail of modifying parameters, user can run following command:
./waf --run "scratch/NB-IoT_scheduler_example --PrintHelp"
EX: If you like to run with NPDCCH + NPUSCH and convetional method with 4 UE:
./waf --run "scratch/NB-IoT_scheduler_example --nunberOfNodes=4 --ch=0 --alpha=1"
We evaluate our implementation with three perspectives: (briefly refer from article Simulating NB-IoT Scheduler: Using ns-3 as an Example.)
- NPDCCH Channel Utilization
- NPDSCH Channel Utilization
- NPUSCH Channel Utilization
We calculate the NPDCCH Channel utilization with different repetition number in 40ms.
The definition of channel utilization is shown in figure in section 2.1 (T-A). The detail of this experiment is in article Simulating NB-IoT Scheduler: Using ns-3 as an Example.
Following figure illustrates the results of the simulation we performed through the aforementioned scenario.
We calculate the NPDSCH Channel utilization with different repetition number in 40ms.
The definition of channel utilization is shown in figure in section 2.1 (T-B). The detail of this experiment is in article Simulating NB-IoT Scheduler: Using ns-3 as an Example.
Following figure illustrates the results of the simulation we performed through the aforementioned scenario.
We calculate the NPUSCH Channel utilization with different repetition number in 40ms.
The definition of channel utilization is shown in figure in section 2.1 (T-C). The detail of this experiment is in article Simulating NB-IoT Scheduler: Using ns-3 as an Example.