Optimised Uplink Scheduler for WiMAX

46
Optimised Uplink Scheduler for WiMAX by Sriraam A S 20072220 Santhosh Kumar M L 20072194 RaviSankar R 20072189 A project report submitted to the FACULTY OF INFORMATION AND COMMUNICATION ENGINEERING in partial fulfillment of the requirements for the award of the degree of BACHELOR OF ENGINEERING in COMPUTER SCIENCE AND ENGINEERING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING ANNA UNIVERSITY CHENNAI CHENNAI - 600025 April 2011

description

WiMAX-Wireless Interoperability for Microwave Access is the last mile solution for economic broadbandaccess for Metropolitan Area Networks(MAN). The IEEE 802.16 standard defines the specifications forWiMAX networks. In the IEEE 802.16 standard, MAC layer scheduling is not defined specifically. MAC-layer scheduling plays a crucial part in the performance of a WiMAX network. In this thesis, an optimaluplink-scheduling algorithm that uses two parameters viz. modulation-type and serviceflow-type to providebetter performance for all classes of users in the network has been presented. In the proposed optimalscheduler, fairness for all classes of traffic is also provided. This is achieved by considering the traffic loadand a fairness factor, alpha. The fairness factor can be modified to change the degree of fairness to beenforced. The combined approach of throughput, Quality of Service(QoS) and fairness provides an edgeover the existing schedulers to provide better performance. In our optimal scheduler, the scheduling policyexploits higher datarate of certain modulation types to allocate increased number of bytes in a frame. Further,minimum bandwidth and maximum delay are the key parameters of QoS. Two modules, checkdeadline andcheckminimumbandwidth in the proposed scheduler, ensures that minimum bandwidth and maximum delayis guaranteed. Also, all users in the network are provided fair chances at allocation process, keeping in mindthe QoS characteristics as well. This scheduling policy has led to better performance of the network

Transcript of Optimised Uplink Scheduler for WiMAX

Page 1: Optimised Uplink Scheduler for WiMAX

Optimised Uplink Scheduler for WiMAXby

Sriraam A S 20072220Santhosh Kumar M L 20072194

RaviSankar R 20072189

A project report submitted to the

FACULTY OF INFORMATION AND

COMMUNICATION ENGINEERING

in partial fulfillment of the requirements

for the award of the degree of

BACHELOR OF ENGINEERING

in

COMPUTER SCIENCE AND ENGINEERING

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

ANNA UNIVERSITY CHENNAI

CHENNAI - 600025

April 2011

Page 2: Optimised Uplink Scheduler for WiMAX

CERTIFICATE

Certified that this project report titled “Optimised Uplink Scheduler for WiMAX” is the bonafide work of

Sriraam A S (20072220), RaviSankar R (20072189), SanthoshKumar ML(20072194) who carried out

the project work under my supervision, for the fulfillment of the requirements for the award of the degree of

Bachelor of Engineering in Computer Science and Engineering. Certified further that to the best of my

knowledge, the work reported herein does not form part of any other thesis or dissertation on the basis of

which a degree or an award was conferred on an earlier occasion on these are any other candidates.

Place: Chennai V.Mary Anita Rajam,Date: Selection Grade Lecturer,

Department of Computer Science and Engineering,

Anna University Chennai,

Chennai - 600025

COUNTERSIGNED

Head of the Department,

Department of Computer Science and Engineering,

Anna University Chennai,

Chennai – 600025

Page 3: Optimised Uplink Scheduler for WiMAX

ACKNOWLEDGEMENTS

We express our deep gratitude to our guide, V.Mary Anita Rajam for guiding us through every phase of the

project. We appreciate her thoroughness, tolerance and ability to share her knowledge with us. We thank her

for being easily approachable and quite thoughtful. Apart from adding her own input, she has encouraged

us to think on our own and give form to our thoughts. We owe her for harnessing our potential and bringing

out the best in us. Without her immense support through every step of the way, we could never have it to this

extent.

We are extremely grateful to Dr.K.S.EaswaraKumar, Head of the Department of Computer Science and

Engineering, Anna University, Chennai 600025, for extending the facilities of the Department towards our

project and for his unstinting support.

We express our thanks to the panel of reviewers Dr.Arul Siromoney, Dr.A.P.Shanthi andDr.MadhanKarky for their valuable suggestions and critical reviews throughout the course of our project.

We thank our parents, family, and friends for bearing with us throughout the course of our project and for

the opportunity they provided us in undergoing this course in such a prestigious institution.

Sriraam RaviSankar Santhosh

Page 4: Optimised Uplink Scheduler for WiMAX

ABSTRACT

WiMAX-Wireless Interoperability for Microwave Access is the last mile solution for economic broadband

access for Metropolitan Area Networks(MAN). The IEEE 802.16 standard defines the specifications for

WiMAX networks. In the IEEE 802.16 standard, MAC layer scheduling is not defined specifically. MAC-

layer scheduling plays a crucial part in the performance of a WiMAX network. In this thesis, an optimal

uplink-scheduling algorithm that uses two parameters viz. modulation-type and serviceflow-type to provide

better performance for all classes of users in the network has been presented. In the proposed optimal

scheduler, fairness for all classes of traffic is also provided. This is achieved by considering the traffic load

and a fairness factor, alpha. The fairness factor can be modified to change the degree of fairness to be

enforced. The combined approach of throughput, Quality of Service(QoS) and fairness provides an edge

over the existing schedulers to provide better performance. In our optimal scheduler, the scheduling policy

exploits higher datarate of certain modulation types to allocate increased number of bytes in a frame. Further,

minimum bandwidth and maximum delay are the key parameters of QoS. Two modules, checkdeadline and

checkminimumbandwidth in the proposed scheduler, ensures that minimum bandwidth and maximum delay

is guaranteed. Also, all users in the network are provided fair chances at allocation process, keeping in mind

the QoS characteristics as well. This scheduling policy has led to better performance of the network.

Page 5: Optimised Uplink Scheduler for WiMAX

Contents

CERTIFICATE i

ACKNOWLEDGEMENTS ii

ABSTRACT(ENGLISH) iii

ABSTRACT(TAMIL) iv

LIST OF FIGURES vi

LIST OF TABLES vii

LIST OF ABBREVIATIONS viii

1 INTRODUCTION 11.1 PROBLEM DOMAIN 11.2 SCOPE OF THE PROJECT 11.3 LITERATURE REVIEW 21.4 PROBLEM DEFINITION 31.5 CONTRIBUTIONS 31.6 ORGANIZATION OF THE REPORT 3

2 REQUIREMENTS ANALYSIS 42.1 FUNCTIONAL REQUIREMENTS 42.2 NON-FUNCTIONAL REQUIREMENTS 4

2.2.1 User Interface 42.2.2 Performance Characteristics 42.2.3 Hardware Considerations 5

2.3 CONSTRAINTS AND ASSUMPTIONS 52.4 SYSTEM MODELS 5

3 DESIGN 93.1 SYSTEM ARCHITECTURE 93.2 MODULE DESCRIPTIONS 9

3.2.1 Algorithm 1 113.2.2 Algorithm 2 12

4 SYSTEM DEVELOPMENT 144.1 IMPLEMENTATION DETAILS 144.2 SIMULATION ENVIRONMENT AND ITS PARAMETERS 16

5 RESULTS AND DISCUSSIONS 175.1 RESULTS 175.2 ANALYSIS 17

iv

Page 6: Optimised Uplink Scheduler for WiMAX

v

6 CONCLUSION 206.1 OVERALL CONCLUSION 206.2 FUTURE WORK AND EXTENSIONS 20

A SCREENSHOTS 21

B TEST CASES 29

REFERENCES 37

Page 7: Optimised Uplink Scheduler for WiMAX

List of Figures

2.1 Sequence Diagram 62.2 Scenario 72.3 Architecture 72.4 Use Case Diagram 8

3.1 Class Diagram 10

5.1 Test case 1- Throughput Comparison 185.2 Test case 1 - Waiting Time Comparison(Fairness) 185.3 Test Case 2- Throughput Comparison 195.4 Test Case 2- Waiting Time Comparison(Fairness) 19

A.1 ScreenShot1 22A.2 ScreenShot2 23A.3 ScreenShot3 24A.4 ScreenShot4 25A.5 ScreenShot4 26A.6 ScreenShot4 27A.7 ScreenShot4 28

vi

Page 8: Optimised Uplink Scheduler for WiMAX

List of Tables

2.1 Comparison of ModulationTypes vs SNR vs Data Rate 4

vii

Page 9: Optimised Uplink Scheduler for WiMAX

LIST OF ABBREVIATIONS

SNR Signal-to-Noise Ratio

WiMAX Wireless interoperability for Microwave Access

QoS Quality of Service

rtPS realtime Polling Service

nrtPS non realtime Polling Service

UGS Unsolicited Grants Service

ertPS extended realtime Polling Service

BE Best Effort

BS Base Station

SS Subscriber Station

MAC Medium Access Control

CAC Connection Admission Control

viii

Page 10: Optimised Uplink Scheduler for WiMAX

CHAPTER 1

INTRODUCTION

1.1 PROBLEM DOMAIN

The problem of optimal allocation of bandwidth for each user in the network in WiMAX IEEE 802.16 is

an interesting research problem. Different heuristics have been suggested to provide an optimal scheduling

algorithm. When several users are part of a WiMAX network, it is the job of the Base Station(BS) to schedule

the traffic flow in both uplink and downlink for each Subscriber Station(SS) connected to it and to maximize

utilization. Several classes of users exist based on the type of the application they run. Some applications

require a high data-rate with minimal delay while some applications can tolerate delay. It is the job of the

uplink-scheduler to decide the Subscriber Station and the duration of utilization of the medium. In the design

of an uplink-scheduler, the balance between providing high good-put and fairness to users is delicate and

there arises the need for an efficient scheduling algorithm to optimize network usage.

1.2 SCOPE OF THE PROJECT

The purpose of the project is to analyze the existing schedulers for WiMAX and to provide an optimal

scheduling algorithm. The existing scheduler is channel-unaware (that ignores the state of the network) and

aims to provide strict priority scheduling. This could lead to starvation and poor performance for low priority

traffic. Further, the network resource utilization is not optimal. In our project, a channel aware scheduling

algorithm that could adapt based on Signal to Noise Ratio(SNR) has been developed along with fairness to

several classes of users.

It is implemented as a component of ns-3 simulator and can be used by students and researchers for analysis

and improvement.

1

Page 11: Optimised Uplink Scheduler for WiMAX

2

1.3 LITERATURE REVIEW

MAC-layer Schedulers are classified as different types. They may be primarily classified as Downlink and

Uplink Schedulers. Flow of traffic from the Base Station(BS) to Subscriber Station(SS) is controlled by a

Downlink-scheduler while flow from SS to BS is controlled by an Uplink Scheduler.

They may also be classified as Channel-aware and channel unaware schedulers. Also, they are categorized

as Inter-class and Intra-class schedulers. Channel aware schedulers consider the channel quality and state

in scheduling decisions while channel unaware class is further categorized into homogeneous and hybrid

schedulers.

The homogeneous schedulers include Weighted Round Robin(WRR) or Deficit Weighted Round Robin

which cannot holdup QoS requirements strictly. Weighted Fair Queuing(WFQ) is also employed to assure

QoS based on weights but calculation of weights is not optimal. Strict priority scheme is also employed.

Here, the five kinds of service flows, Unsolicited Grants Service(UGS), extended Real Time Polling

Service(ertPS), real time Polling Service(rtPS), non-real time Polling Service(nrtPS) and Best Effort(BE)

are serviced with priority UGS >> ertPS >> rtPS >> nrtPS >> BE. In this scheme, fairness and

throughput could not be guaranteed.

A hybrid scheduler uses a different approach for each class of traffic. The hybrid scheduler may employ

Earliest Deadline First(EDF) for rtPS and employ Weighted Fair Queuing for nrtPS and BE services.

Different combinations of scheduling policies have different benefits and desirable performance

characteristics.

In [3] the authors propose a novel hybrid scheduler that employs Priority and Earliest Due Date(EDD) for

different classes of service. Yet, this approach misses out the advantage of a channel aware scheduler. The

authors in [4] propose a hierarchical scheduler which utilizes both channel state as well as weighted fairness

to optimize bandwidth allocation. However, the algorithm considers aggregate bandwidth requests and SNR

for weight allocation for each class.

The algorithm in [2] uses too many queues to accomplish the task. Also, the criteria for assigning weights

is inefficient. While all the earlier works present solutions to fairness or throughput or priority, no algorithm

fuses all the requirements to obtain better performance. The algorithm presented in [1] introduces Latency-

Rate scheduling and token bucket algorithm but it proves to be quite complex.

Page 12: Optimised Uplink Scheduler for WiMAX

3

1.4 PROBLEM DEFINITION

The Up-link scheduler is a component of Base-station(BS) in the MAC layer of IEEE 802.16 standard. The

role of the up-link scheduler is to transmit information to Subscriber Stations(SS) regarding the time during

which each SS has to transmit its data to BS.The information is in the form of Uplink MAP(ULMAP) . The

physical frame is divided into equal-interval physical time-slots. The information about the time slots and

its allocation to a user is embedded in a ULMAP which is later broad-casted to all SSs.

The problem at hand is to manage the bandwidth available in such a way as to provide high good-put and

fairness along with Quality of Service(QoS) for all the existing connections in the Network.

1.5 CONTRIBUTIONS

As seen in the Literary Review, the existing schedulers focus on one performance characteristic at a time,

either throughput or fairness or Quality of Service. In our optimal scheduler, all the three performance

characteristics have been provided. Hence the optimal scheduler can obtain higher throughput than earlier

schedulers, can provide fairness to all users in the network and provide the guaranteed Quality of

Service(QoS) to users. Further, the optimal scheduler can exploit the channel characteristic i.e. Signal to

Noise Ratio (SNR) for scheduling decisions, which includes adaptability of the scheduler in a dynamic

wireless environment.

1.6 ORGANIZATION OF THE REPORT

In this thesis report, chapter 2 deals with Requirements analysis and chapter 3 deals with system design.

Chapter 4 explains the system development and implementation details. Chapter 5 contains test results and

discussions. Chapter 6 deals with conclusion of the project and the future work and extensions.

Page 13: Optimised Uplink Scheduler for WiMAX

CHAPTER 2

REQUIREMENTS ANALYSIS

2.1 FUNCTIONAL REQUIREMENTS

The Simulation is performed using NS-3 simulator. The NS-3 simulator works well in a linux

environment.The scheduler works for a SISO(single input and single output) environment.

2.2 NON-FUNCTIONAL REQUIREMENTS

2.2.1 User Interface

The user interface for NS-3 simulator is Command-line. The proposed scheduling algorithm is implemented

in NS-3 scheduler and used in a WIMAX network.

2.2.2 Performance Characteristics

The performance of the algorithm can be measured in terms of throughput- no. of bytes of bandwidth

allocated for uplink. The performance of the algorithm can also be measured using the degree of fairness in

allocation to multiple users. The following table presents the different modulation-types available and their

corresponding SNR values and Datarate.

TABLE 2.1: Comparison of ModulationTypes vs SNR vs Data Rate

Modulation SNR(dB) Data Rate(Mbps)BPSK 1/2 3.0 2.13QPSK 1/2 6.0 3.39QPSK 3/4 8.5 5.0816-QAM 1/2 11.5 6.6716-QAM 3/4 15.0 10.1764-QAM 2/3 19.0 13.564-QAM 3/4 21.0 15.2

4

Page 14: Optimised Uplink Scheduler for WiMAX

5

2.2.3 Hardware Considerations

The NS-3 simulator is used to simulate the performance of the scheduling algorithm. The simulator does not

have a strict hardware requirement since it is basically a C++ application. Intel Dual core and core 2 Duo

processors with 2GB of primary memory and 2 GB of secondary storage is more than sufficient.

2.3 CONSTRAINTS AND ASSUMPTIONS

The NS-3 simulator does not define eRTPS (extended Real Time Polling Services) type of service flow as

of version 3.10. Also, the current version of NS-3 simulator does not support MIMO interfaces.

2.4 SYSTEM MODELS

In figure 2.1, a sequence diagram is shown where the role of scheduler with base station and subscriber

station is shown. In figure 2.2, a scenario of the WiMAX network in Point-to-Multipoint(PMP) node is

shown. Here , 5 subscriber stations are connected to one base station. In figure 2.3, architecture of Base

station is shown. Here, the physical layer provides information to MAC layer and obtains Uplink

Maps(ULMAP) from the MAC layer. The uplink scheduler remains to be a part of MAC-layer. In figure

2.4, a use-case diagram that represents the various use-cases for uplink-scheduling process is shown.

Page 15: Optimised Uplink Scheduler for WiMAX

6

FIGURE 2.1: Sequence Diagram

Page 16: Optimised Uplink Scheduler for WiMAX

7

FIGURE 2.2: Scenario

FIGURE 2.3: Architecture

Page 17: Optimised Uplink Scheduler for WiMAX

8

FIGURE 2.4: Use Case Diagram

Page 18: Optimised Uplink Scheduler for WiMAX

CHAPTER 3

DESIGN

3.1 SYSTEM ARCHITECTURE

WiMAX works in two modes of operation, Point-to-Multipoint mode and Mesh Mode. In this thesis, we

consider Point-to-Multipoint mode(PMP) where any communication between Subscriber Stations(SS)

happens through a Base Station(BS). In this system, the first phase is the connection establishment where

an SS requests for a connection to a BS with certain traffic characteristics. If the Connection Admission

Control (CAC) module of the BS accepts the connection, the connection is established. It is the role of

CAC to prevent performance degradation for existing users or any users for that matter after connection

establishment.There are predefined classes of service flows with different characteristics. They are

Unsolicited Grants Service(UGS), Real Time Polling Service(rtPS), Non-Real-time Polling Service(nrtPS),

extended Real Time Polling Service(ertPS) and Best Effort(BE). The SS can request bandwidth

dynamically or be granted fixed bandwidth as requested during connection establishment. It is the job of

the uplink Scheduler to choose SS, one at a time and service its bandwidth requirements based on the

service flow characteristics. Figure 3.1 shows a class diagram, containing various classes used in

uplink-scheduling.

3.2 MODULE DESCRIPTIONS

In the following section, two algorithms have been presented. The algorithm 2, shown below is a progressive

refinement of algorithm 1. The descriptions for the two algorithms have also been provided. Algorithm 1:

The job of an uplink-scheduler is to allocate bandwidth for each service flow in the Subscriber Station. A

service flow has its own Quality of Service characteristics like maximum delay and minimum bandwidth.

In step 1, the scheduler allocates initial values for variables such as availableSymbols, symbolstoallocation,

etc. Then, the scheduler obtains a list of all the Subscriber Stations connected to the Base Station. This list

is then iterated, servicing for each Subscriber Station(SS), one at a time. If an SS is just entering the network

and no Quality of Service characteristic has been defined, then a slot is allocated for the SS to establish a

service flow. If an SS wants to join the network, then a slot for that SS is also allocated. Following this, for

9

Page 19: Optimised Uplink Scheduler for WiMAX

10

FIGURE 3.1: Class Diagram

each service flow, a unicast polling request is sent to the SS. In step 2, 4 lists, high list, inter list, low list,

mod list[7] are initialised.The modulation types have been shown in table 2.1.

In step 3, each service flow with a particular modulation type, say i, is put in mod list[i].

In step 4, each service flow in mod list, iterated starting from mod list[7], is enqueued in the three queues,

high,inter and low list based on type of service flow, as can be seen in algorithm.

In step 5, the number of slots available in this frame (freeSlots) is calculated. With that, the polling requests

in high list are allocated slots first.

In step 6, with the available freeSlots, the DATA transfer requests are allocated in the ratio of 0.6:0.3:0.1 to

high, inter and low list.

In step 7, the deadline of a service flow in the queue is calculated and if found to expire after the current

frame, the service flow is pushed onto the front of the queue.

Page 20: Optimised Uplink Scheduler for WiMAX

11

In step 8, the minimum bandwidth requirement of a service flow is checked against the granted bandwidth.

If found insufficient, the service flow is pushed onto the front of the queue.

3.2.1 Algorithm 1

1) Initialize scheduler.

2)Initialise high_list,inter_list, low_list, mod_list[7]

3)For service Flows with i modulation,

insert serviceFlow in mod_list[i]

4) From mod_list insert

a)UGS and polling requests in high_list

b)Insert rtPS serviceFlows to inter_list.

c)Insert nrtPS serviceFlows to inter_list.

d)Insert BE serviceFlows to low_list.

The job of an uplink-scheduler is to allocate bandwidth for each service flow in the Subscriber Station. A service flow has its own Quality of Service characteristics like maximum delay and minimum bandwidth. In step 1, the scheduler allocates initial values for variables such as availableSymbols, symbolstoallocation, etc. Then, the scheduler obtains a list of all the Subscriber Stations connected to the Base Station. This list is then iterated, servicing for each Subscriber Station(SS), one at a time. If an SS is just entering the network and no Quality of Service characteristic has been defined, then a slot is allocated for the SS to establish a service flow. If an SS wants to join the network, then a slot for that SS is also allocated. Following this, for each service flow, a unicast polling request is sent to the SS.

In step 2, 4 lists, high\_list, inter\_list, low\_list, mod\_list[7] is initialised.

5) while(freeSlots > 0 and high_list != empty)

provide bandwidth for unicast Polling requests in high_list.

6) If(freeSlots > 0)

distribute remaining FreeSlots proportionally

to high_list, inter_list, low_list based on ratio of 0.6:0.3:0.1

7) Check Deadline(inter_list)

8) Check minimumBandwidth(inter_list)

Page 21: Optimised Uplink Scheduler for WiMAX

12

9)If deadline or min BW violation

Elevate Priority by migration to high_list.

3.2.2 Algorithm 2

Description: The job of an uplink-scheduler is to allocate bandwidth for each service flow in the Subscriber

Station. A service flow has its own Quality of Service characteristics like maximum delay and minimum

bandwidth. In step 1, the scheduler allocates initial values for variables such as availableSymbols,

symbolstoallocation, etc. Then, the scheduler obtains a list of all the Subscriber Stations connected to the

Base Station. This list is then iterated, servicing for each Subscriber Station(SS), one at a time. If an SS is

just entering the network and no Quality of Service characteristic has been defined, then a slot is allocated

for the SS to establish a service flow. If an SS wants to join the network, then a slot for that SS is also

allocated. Following this, for each service flow, a unicast polling request is sent to the SS. In step 2, 4 lists,

high list, inter list, low list are initialised.

In step 3, each service flow is is enqueued in the three queues, high,inter and low list based on type of service

flow, as can be seen in algorithm.

In step 4, service flows in each queue are sorted based on the modulation type so that serviceflow with

modulation type-7 is at head of queue while modulation type-1 is towards the tail of the queue.

In step 5, the available slots are distributed across each queue based on size of queue and fairness factor.

In step 6, the queues are processed sequentially in the order high list, inter list and low list.

In step 7, the deadline of a service flow in inter queue is calculated and if found to expire after the current

frame, the service flow is pushed onto the front of the queue.

In step 8, the minimum bandwidth requirement of a service flow in interqueue is checked against the granted

bandwidth. If found insufficient, the service flow is pushed onto the front of the queue.

1) Initialize scheduler.

Page 22: Optimised Uplink Scheduler for WiMAX

13

2)Initialise high_list,inter_list,low_list,

3) For each ServiceFlow,Enqueue

a)UGS and polling requests in high_list

b)Insert rtPS serviceFlows to inter_list.

c)Insert nrtPS serviceFlows to inter_list.

d)Insert BE serviceFlows to low_list.

4) Sort each list based on Modulation type.

5) while(FreeSlots >0) and (high_list != empty)

Provide bandwidth for Unicast polling requests in high_list

6) If(FreeSlots>0)

Distribute Remaining FreeSlots proportionally to high_list,inter_list,

low_list based on queue-size and

fairness factor

7) Check Deadline(inter_list)

8) Check minimumBandwidth(inter_list)

9)If deadline or min BW violation

Elevate Priority by migration to front of list

Page 23: Optimised Uplink Scheduler for WiMAX

CHAPTER 4

SYSTEM DEVELOPMENT

The NS-3 simulator is used to implement the proposed scheduling algorithm.

4.1 IMPLEMENTATION DETAILS

The NS-3 simulator has separate modules for WiMAX. The scheduler is implemented and integrated into

/src/devices/wimax folder and then, NS-3 simulator is compiled. Several other files like wimaxphy,

bsnetdevice, ns− 3.9/build/debug/bindings/python/ns3 module wimax.cc were modified to account for

the new scheduler class. In the new scheduler class, bs-uplink-scheduler-new1, the schedule() function is

overloaded to implement the proposed optimised scheduling algorithm.

In the initialization phase, allocations for ranging and service flow creation are setup. Once they are

completed, we allocate unicast polls for all existing service flows and service the UGS bandwidth requests.

Then, based on specified scheduling policy, other service flows are serviced.

In the implemented scheduler, GetSSRecords() method is used to access connection information about all

Subscriber Stations connected to the Base Station. The modulation-type data of SSRecord is primarily

used in the scheduling process.Each SSRecord may contain more than one ServiceFlow record within it.

The schedule-type data of ServiceFlow of SSRecord will indicate the QoS characteristic of the established

connection by an application. The SSRecords are later converted into Uplink-Job (ULJob) structure to be

encapsulated in Uplink-Map(ULmap) structure and input into m UplinkAllocations queue. Several modules

are involved in scheduling including Check Deadline and Check Bandwidth.

Check Deadline: Deadline is a Quality of Service (QoS) characteristic that indicated maximum delay that is

allowed between subsequent bandwidth allocations. Deadline expiry entails that the bandwidth request has

to be processed immediately. The checking usually happens for RTPS traffic alone

job− > GetDeadline() is a function that returns the deadline for the job. The condition

deadline−now/ f rame duration > 3 is used to decide upon deadline expiry.

The jobs whose deadline expire, are promoted to the front of the queue where they have higher chance of

being served at the earliest.

14

Page 24: Optimised Uplink Scheduler for WiMAX

15

Check Minimum Bandwidth:

Minimum bandwidth is the amount of bandwidth i.e number of bytes per unit time that is guaranteed for a

subscriber station and is usually defined during service flow allocation. In this particular module, for each

service flow, it is checked if the minimum that is promised has been granted or not.

serviceFlow−> GetRecord()−> GetBacklogged()

serviceFlow−> GetRecord()−> GetBwSinceLastExpiry()

serviceFlow−> GetMinReservedTra f f icRate()

The above mentioned functions are used accordingly to check for minimum bandwidth. The jobs which did

not get sufficient bandwidth get promoted to front of the queue where chances of being served in the next

frame is high.

The service flows are sorted in the 3 lists, high, inter and low list based on the Modulation type, such that

higher data-rate services are at the head of the queue and lower towards the tail of the queue. The sorting is

performed using a simple compare function.

bool compare(Ptr<UlJob> job_1,Ptr<UlJob> job_2)

{

int mod1=job_1->GetSsRecord ()->GetModulationType();

int mod2=job_2->GetSsRecord ()->GetModulationType();

if(mod1>mod2)

return true;

else

return false;

}

The available bandwidth indicated by freeslots is distributed among the 3 queues based on the formula :

weight of high list=(alpha*0.5)+((1-alpha)*(size of high list/total size))

weigh of inter list=(alpha*(0.3333))+((1-alpha)*((size of inter list/total size))

weight of low list=(alpha*(0.1667))+((1-alpha)*(size of low list/total size)

Page 25: Optimised Uplink Scheduler for WiMAX

16

In the above formula, the alpha value indicates the fairness factor. It can be changed to modify the degree of

fairness enforced in the scheduling policy. The weight calculated above is then combined with freeSlots to

obtain the upper threshold of number of slots for each queue. Each queue is then processed sequentially to

allocate slots for serviceflows.

The allocation is performed by creating Uplink Map (ULMAP) structures that specify which SS gets to

transmit and for what duration. This ULMAP is added to the m uplinkallocations queue. The other

components of MAC layer and PHY layer will take care of sending the ULMAPS to all the Subscriber

Stations from this queue.

4.2 SIMULATION ENVIRONMENT AND ITS PARAMETERS

Simulations of the wimax network in PMP mode were performed with the implemented scheduling

algorithm. In our simulations, 8 subscriber stations(SS) connected to 1 Base station(BS) running UDP

applications was performed to analyse the effectiveness of the scheduling algorithm. Two different

scenarios were simulated to check the performance of the algorithms.Each test simulates network with

different ServiceFlows existing in it. Also, the fairness degree,alpha was also varied to know the variation

in the performance. The throughput has been analysed for the implementation of algorihtm 1 and algorithm

2. Due to the nature of the traffic flows and better scheduling policy, algorithm 2 results in better throughput

than others as shown in Figure 5.1. Also waiting time of jobs has been analysed and visualised as shown in

Figure 5.2.

Scenario 1: Service Flows, RTPS-4 BE-4 Scenario 2: Service Flows, NRTPS-2 BE-6

Page 26: Optimised Uplink Scheduler for WiMAX

CHAPTER 5

RESULTS AND DISCUSSIONS

5.1 RESULTS

The graphs depicting the performance comparison for the scheduling algorithms indicate that the optimised

algorithm performs with improved throughput than the other algorithm. It is also noted that the improvement

in performance is partly accounted to improvement of fairness as shown in graph.

In our first scenario, four real-time Polling Services(rtPS) service flows and four Best Effort(BE) service

flows were simulated. In Figure 5.1,x-axis represents the time in seconds while y-axis represents number of

bytes allocated in bytes. In the figure 5.1, the two graphs indicate the performance of the 2 algorithms. The

green-coloured graph represents the throughput at intervals of time by algorithm 2 while red-coloured graph

represents that of algorithm 1. As can be seen from the graph, the algorithm 2 shows higher throughput than

algorithm 1. In Figure 5.2, the bar graph represents the waiting time of each queue used in the algorithm. In

the x-axis, the 3 queues- hq,iq and lq(high, inter and low) are presented. The y-axis represents the waiting

time of different service flows in each of the queues. The red graph represents waiting time of algorithm

1 while green represents that of algorithm 2. It can be seen that the low list (indicated by lp in graph) has

reduced waiting time for algorithm 2 than algorithm 1. This indicates the amount of fairness provided by the

algorithm.

In our second scenario, two non real-time Polling Services(nrtPS) service flows and six Best Effort(BE)

service Flows were simulated. In Figure 5.3 the graph shows that the optimised algorithm, algorithm 2,

results in higher throughput than the algorithm 1.However the dips and increments in the graph are due to

the higher concentration of Best effort traffic in the network which has low bandwidth demands. In Figure

5.4, the waiting time of service flows in low list in algorithm 2 is found to be lesser than algorithm 1. This

signifies the provision of fairness for all classes of users in the network.

5.2 ANALYSIS

The improved throughput in the optimised algorithm has several factors attributing to it. The channel-aware

characteristic of the algorithm that considers the SNR of the network at present is one factor. Adding to

17

Page 27: Optimised Uplink Scheduler for WiMAX

18

FIGURE 5.1: Test case 1- Throughput Comparison

FIGURE 5.2: Test case 1 - Waiting Time Comparison(Fairness)

that, the fact that all service flows are serviced with fairness as sufficient, throughput improves accordingly.

Though it is arguable that the performance of the algorithm may be affected in a network where high priority

service flows are predominant,the odds are quite minimal as the fairness also considers the current traffic

characteristics to decide upon measure of fairness.The optimised algorithm is seen to perform quite well in

all the test cases.

Page 28: Optimised Uplink Scheduler for WiMAX

19

FIGURE 5.3: Test Case 2- Throughput Comparison

FIGURE 5.4: Test Case 2- Waiting Time Comparison(Fairness)

Page 29: Optimised Uplink Scheduler for WiMAX

CHAPTER 6

CONCLUSION

6.1 OVERALL CONCLUSION

The MAC-layer uplink-scheduling algorithm has significant impact on the performance of the network. In

our project, we developed an optimised uplink-scheduling algorithm for MAC layer to provide both high

throughput and fairness to users. The performance improvement is significant and throughput increases by

almost twice that of an existing scheduler. The waiting time of the requests also seems to have reduced in the

optimised scheduler. The integration of channel aware characteristic i.e Signal to Noise Ratio(SNR) along

with QoS has contributed to the improvement of the scheduler’s performance.

6.2 FUTURE WORK AND EXTENSIONS

The future work could include further optimizations to exploit other characteristics of the WiMAX network.

On availability of ertPS service Flow as part of ns-3 simulator, further simulations can be performed to

analyse performance. Also, fairness based on users in a much larger scale and further improvement in

performance is possible.

20

Page 30: Optimised Uplink Scheduler for WiMAX

APPENDIX A

SCREENSHOTS

21

Page 31: Optimised Uplink Scheduler for WiMAX

22

FIGURE A.1: ScreenShot1

Page 32: Optimised Uplink Scheduler for WiMAX

23

FIGURE A.2: ScreenShot2

Page 33: Optimised Uplink Scheduler for WiMAX

24

FIGURE A.3: ScreenShot3

Page 34: Optimised Uplink Scheduler for WiMAX

25

FIGURE A.4: ScreenShot4

Page 35: Optimised Uplink Scheduler for WiMAX

26

FIGURE A.5: ScreenShot4

Page 36: Optimised Uplink Scheduler for WiMAX

27

FIGURE A.6: ScreenShot4

Page 37: Optimised Uplink Scheduler for WiMAX

28

FIGURE A.7: ScreenShot4

Page 38: Optimised Uplink Scheduler for WiMAX

APPENDIX B

TEST CASES

//nrtps-2 be-6

#include "ns3/core-module.h"

#include "ns3/common-module.h"

#include "ns3/node-module.h"

#include "ns3/helper-module.h"

#include "ns3/mobility-module.h"

#include "ns3/contrib-module.h"

#include "ns3/wimax-module.h"

#include <iostream>

#include "ns3/global-route-manager.h"

#include<unistd.h>

#include<fcntl.h>

NS_LOG_COMPONENT_DEFINE ("wimaxIpV4Simulation");

using namespace ns3;

int main (int argc, char *argv[])

{

// default values

int nbSS = 8 , duration =4, schedType = 1;

bool verbose = false;

WimaxHelper::SchedulerType scheduler = WimaxHelper::SCHED_TYPE_SIMPLE;

LogComponentEnable ("UdpClient", LOG_LEVEL_INFO);

LogComponentEnable ("UdpServer", LOG_LEVEL_INFO);

LogComponentEnable ("UplinkSchedulerSimple", LOG_LEVEL_INFO);

CommandLine cmd;

cmd.AddValue ("nbSS", "number of subscriber station to create", nbSS);

cmd.AddValue ("scheduler", "type of scheduler to use with the network devices", schedType);

29

Page 39: Optimised Uplink Scheduler for WiMAX

30

cmd.AddValue ("duration", "duration of the simulation in seconds", duration);

cmd.AddValue ("verbose", "turn on all WimaxNetDevice log components", verbose);

//cmd.AddValue ("alpha", "alpha component", alpha);

cmd.Parse (argc, argv);

//int f=open("/home/santhosh/alpha",2);

//write(f,argv[1],strlen(argv[1]));

/*switch (schedType)

{

case 0:

scheduler = WimaxHelper::SCHED_TYPE_SIMPLE;

break;

case 1:

scheduler = WimaxHelper::SCHED_TYPE_MBQOS;

break;

case 2:

scheduler = WimaxHelper::SCHED_TYPE_RTPS;

break;

default:

scheduler = WimaxHelper::SCHED_TYPE_SIMPLE;

}

*/

NodeContainer ssNodes;

NodeContainer bsNodes;

ssNodes.Create (nbSS);

bsNodes.Create (1);

WimaxHelper wimax;

NetDeviceContainer ssDevs, bsDevs;

ssDevs = wimax.Install (ssNodes,

WimaxHelper::DEVICE_TYPE_SUBSCRIBER_STATION,

WimaxHelper::SIMPLE_PHY_TYPE_OFDM,

scheduler);

bsDevs = wimax.Install (bsNodes, WimaxHelper::DEVICE_TYPE_BASE_STATION,

WimaxHelper::SIMPLE_PHY_TYPE_OFDM, scheduler);

Page 40: Optimised Uplink Scheduler for WiMAX

31

Ptr<SubscriberStationNetDevice> ss[nbSS];

for (int i = 0; i < nbSS; i++)

{

ss[i] = ssDevs.Get (i)->GetObject<SubscriberStationNetDevice> ();

ss[i]->SetModulationType (WimaxPhy::MODULATION_TYPE_QAM16_12);

}

Ptr<BaseStationNetDevice> bs;

bs = bsDevs.Get (0)->GetObject<BaseStationNetDevice> ();

MobilityHelper mobility;

mobility.Install (bsNodes);

mobility.Install (ssNodes);

InternetStackHelper stack;

stack.Install (bsNodes);

stack.Install (ssNodes);

Ipv4AddressHelper address;

address.SetBase ("10.1.1.0", "255.255.255.0");

for (int i = 0; i < nbSS; i++)

{

ss[i] = ssDevs.Get (i)->GetObject<SubscriberStationNetDevice> ();

ss[i]->SetModulationType ((WimaxPhy::ModulationType)(i%7));

}

Ipv4InterfaceContainer SSinterfaces = address.Assign (ssDevs);

Ipv4InterfaceContainer BSinterface = address.Assign (bsDevs);

if (verbose)

{

wimax.EnableLogComponents (); // Turn on all wimax logging

}

/*------------------------------*/

UdpServerHelper udpServer[nbSS / 2];

ApplicationContainer serverApps[nbSS / 2];

Page 41: Optimised Uplink Scheduler for WiMAX

32

UdpClientHelper udpClient[nbSS / 2];

ApplicationContainer clientApps[nbSS / 2];

for (int i = 0; i < nbSS / 2; i++)

{

// set server port to 100+(i*10)

udpServer[i] = UdpServerHelper (100 + (i * 10));

serverApps[i] = udpServer[i].Install (ssNodes.Get (i));

serverApps[i].Start (Seconds (1));

serverApps[i].Stop (Seconds (duration));

udpClient[i] = UdpClientHelper (SSinterfaces.GetAddress (i), 100 + (i * 10));

udpClient[i].SetAttribute ("MaxPackets", UintegerValue (1200));

udpClient[i].SetAttribute ("Interval", TimeValue (Seconds (0.1)));

udpClient[i].SetAttribute ("PacketSize", UintegerValue (800));

clientApps[i] = udpClient[i].Install (ssNodes.Get (i + (nbSS / 2)));

clientApps[i].Start (Seconds (1));

clientApps[i].Stop (Seconds (duration));

}

Simulator::Stop (Seconds (duration + 0.1));

/*

* Setup 1 transport connections between each SS and the BS

*/

int i;

for (i = 0; i < nbSS/8; i++)

{

IpcsClassifierRecord DlClassifiernrtps (Ipv4Address ("0.0.0.0"),

Ipv4Mask ("0.0.0.0"),

SSinterfaces.GetAddress (i),

Ipv4Mask ("255.255.255.255"),

0,

65000,

Page 42: Optimised Uplink Scheduler for WiMAX

33

100 + (i * 10),

100 + (i * 10),

17,

1);

ServiceFlow DlServiceFlownrtps = wimax.CreateServiceFlow (ServiceFlow::SF_DIRECTION_DOWN,

ServiceFlow::SF_TYPE_NRTPS,

DlClassifiernrtps);

ss[i]->AddServiceFlow (DlServiceFlownrtps);

IpcsClassifierRecord ulClassifiernrtps (SSinterfaces.GetAddress (i + (nbSS / 2)),

Ipv4Mask ("255.255.255.255"),

Ipv4Address ("0.0.0.0"),

Ipv4Mask ("0.0.0.0"),

0,

65000,

100 + (i * 10),

100 + (i * 10),

17,

1);

ServiceFlow ulServiceFlownrtps = wimax.CreateServiceFlow (ServiceFlow::SF_DIRECTION_UP,

ServiceFlow::SF_TYPE_NRTPS,

ulClassifiernrtps);

ss[i + (nbSS / 2)]->AddServiceFlow (ulServiceFlownrtps);

/*----------------------------------------------------------------------------------------------------------------------------------------*/

int j=i+(nbSS/8);

IpcsClassifierRecord DlClassifierrtps (Ipv4Address ("0.0.0.0"),

Ipv4Mask ("0.0.0.0"),

SSinterfaces.GetAddress (i),

Ipv4Mask ("255.255.255.255"),

0,

65000,

100 + (j * 10),

100 + (j * 10),

17,

Page 43: Optimised Uplink Scheduler for WiMAX

34

1);

ServiceFlow DlServiceFlowrtps = wimax.CreateServiceFlow (ServiceFlow::SF_DIRECTION_DOWN,

ServiceFlow::SF_TYPE_BE,

DlClassifierrtps);

ss[j]->AddServiceFlow (DlServiceFlowrtps);

IpcsClassifierRecord ulClassifierrtps (SSinterfaces.GetAddress (j + (nbSS / 2)),

Ipv4Mask ("255.255.255.255"),

Ipv4Address ("0.0.0.0"),

Ipv4Mask ("0.0.0.0"),

0,

65000,

100 + (j * 10),

100 + (j * 10),

17,

1);

ServiceFlow ulServiceFlowrtps = wimax.CreateServiceFlow (ServiceFlow::SF_DIRECTION_UP,

ServiceFlow::SF_TYPE_BE,

ulClassifierrtps);

ss[j + (nbSS / 2)]->AddServiceFlow (ulServiceFlowrtps);

j=i+(nbSS/4);

IpcsClassifierRecord DlClassifierbe (Ipv4Address ("0.0.0.0"),

Ipv4Mask ("0.0.0.0"),

SSinterfaces.GetAddress (i),

Ipv4Mask ("255.255.255.255"),

0,

65000,

100 + (j * 10),

100 + (j * 10),

17,

1);

ServiceFlow DlServiceFlowbe = wimax.CreateServiceFlow (ServiceFlow::SF_DIRECTION_DOWN,

ServiceFlow::SF_TYPE_BE,

DlClassifierbe);

ss[j]->AddServiceFlow (DlServiceFlowbe);

Page 44: Optimised Uplink Scheduler for WiMAX

35

IpcsClassifierRecord ulClassifierbe (SSinterfaces.GetAddress (j + (nbSS / 2)),

Ipv4Mask ("255.255.255.255"),

Ipv4Address ("0.0.0.0"),

Ipv4Mask ("0.0.0.0"),

0,

65000,

100 + (j * 10),

100 + (j * 10),

17,

1);

ServiceFlow ulServiceFlowbe = wimax.CreateServiceFlow (ServiceFlow::SF_DIRECTION_UP,

ServiceFlow::SF_TYPE_BE,

ulClassifierbe);

ss[j + (nbSS / 2)]->AddServiceFlow (ulServiceFlowbe);

j++;

IpcsClassifierRecord DlClassifierbe1 (Ipv4Address ("0.0.0.0"),

Ipv4Mask ("0.0.0.0"),

SSinterfaces.GetAddress (i),

Ipv4Mask ("255.255.255.255"),

0,

65000,

100 + (j * 10),

100 + (j * 10),

17,

1);

ServiceFlow DlServiceFlowbe1 = wimax.CreateServiceFlow (ServiceFlow::SF_DIRECTION_DOWN,

ServiceFlow::SF_TYPE_BE,

DlClassifierbe1);

ss[j]->AddServiceFlow (DlServiceFlowbe1);

IpcsClassifierRecord ulClassifierbe1 (SSinterfaces.GetAddress (j + (nbSS / 2)),

Ipv4Mask ("255.255.255.255"),

Ipv4Address ("0.0.0.0"),

Ipv4Mask ("0.0.0.0"),

0,

65000,

Page 45: Optimised Uplink Scheduler for WiMAX

36

100 + (j * 10),

100 + (j * 10),

17,

1);

ServiceFlow ulServiceFlowbe1 = wimax.CreateServiceFlow (ServiceFlow::SF_DIRECTION_UP,

ServiceFlow::SF_TYPE_BE,

ulClassifierbe1);

ss[j + (nbSS / 2)]->AddServiceFlow (ulServiceFlowbe1);

}

NS_LOG_INFO ("Starting simulation.....");

Simulator::Run ();

for (int i = 0; i < nbSS; i++)

{

ss[i] = 0;

}

bs = 0;

Simulator::Destroy ();

NS_LOG_INFO ("Done.");

return 0;

}

Page 46: Optimised Uplink Scheduler for WiMAX

REFERENCES

[1] D. Eden Ricardo, J. Walter Godoy, and F. Augusto, “A New Scheduler for IEEE 802.16 with Delay

Bound Guarantee,” in Networking and Services (ICNS), 2010 Sixth International Conference, 2010.

[2] L. Elmabruk, A. Irfan, and C. Pauline, “An Integrated Uplink Scheduler In IEEE 802.16,” in Computer

Modeling and Simulation, 2008. EMS ’08. Second UKSIM European Symposium , 2010.

[3] R. Perumalraja, L. Chung-Horng, and S. Anand, “QoS Assured Uplink Scheduler for WiMAX

Networks,” in Canada Proceedings in Vehicular Technology Conference, 2010.

[4] Z. Yurdakul and S. Oktug, “A Hierarchical Channel-Aware Uplink Scheduler for WiMAX Base

Stations,” in Telecommunications (AICT), 2010 Sixth Advanced International Conference, 2010.

37