ieee 802.21 media independent handover dcn: 21-07-0029-00

25
IEEE 802.21 MEDIA INDEPENDENT HANDOVER DCN: 21-07-0029-00 Title: Using the Unified Link Layer API (ULLA) for Generic and Open Media Access within 802.21 Date Submitted: January, 2007 Presented at IEEE 802.21 session #18 Authors or Source(s): Tim Farnham Mahesh Sooriyabandara Abstract: Overview of the API framework developed within the collaborative GOLLUM project and how it could be used

Upload: daryl

Post on 11-Jan-2016

57 views

Category:

Documents


1 download

DESCRIPTION

IEEE 802.21 MEDIA INDEPENDENT HANDOVER DCN: 21-07-0029-00 Title: Using the Unified Link Layer API (ULLA) for Generic and Open Media Access within 802.21 Date Submitted: January, 2007 Presented at IEEE 802.21 session #18 Authors or Source(s): Tim Farnham Mahesh Sooriyabandara - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

IEEE 802.21 MEDIA INDEPENDENT HANDOVER

DCN: 21-07-0029-00

Title: Using the Unified Link Layer API (ULLA) for Generic and Open Media Access within 802.21

Date Submitted: January, 2007

Presented at IEEE 802.21 session #18

Authors or Source(s):

Tim Farnham

Mahesh Sooriyabandara

Abstract: Overview of the API framework developed within the collaborative GOLLUM project and how it could be used

Page 2: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Using the Generic Open Link Layer API for Unified Media Access within 802.21

Examples using recent 802.21 issues / suggestions raised by contributors

Page 3: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Overview

• GOLLUM project overview & achievements

• Relationship between 802.21 & ULLA

• Possible ways to use ULLA in 802.21 • ULLA compatible 802.21 links & link provider• Use of ULLA for link configure thresholds • Use of ULLA for link configuration• Use of ULLA for retrieving device and link

information (802.11 example)

Page 4: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Original Project Objectives

• To solve the complexity and interoperability problem related to the large number of different APIs used for accessing communication interfaces

• To provide triggers, handles and APIs for different smart, context sensitive and link/network aware applications

• To solve the abstraction and extendibility problem related to different underlying wireless interfaces and networking technologies.

• To design, develop and in part implement a solution to hide the embedded communication network problem from the middleware, application and operating system programmers.

• To develop a wireless interface description method that can be used as a tool and as a framework for presenting and extending the API support for current and future wireless interfaces.

Page 5: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Main Project Achievements

• ULLA demonstrates that it is possible to use one single API to get information from and control various link layer technologies

• possible across different platforms & operating systems

• Benefits for link-aware applications / cross-layer design and the ULLA concept has been proven with the demonstrators prototyped during the project execution

• GOLLUM is an enabling technology for innovative link enhancements and optimisation

Page 6: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Main Project Achievements (2)

• The technical goals have been fulfilled:• Performance evaluated

• Inclusion of GOLLUM does not present a significant performance ‘hit’

• A higher level of operating system integration maximises the performance levels but this leads to a lower degree of flexibility

• Scalability• GOLLUM has been implemented and tested on devices

ranging from low-end sensors to high-end laptops• Extensibility

• There is provision for future radio technologies to be incorporated into GOLLUM without modification of the core functionality

• Portability• ANSI C API Definition (common across all platforms and

implementations)• Use of Java/Javascript, C++ and C# APIs for enhanced

portability

Page 7: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

ULLA LP API

LL Adapter LL Adapter LL Adapter

ULLA in a nutshell (1)

802.11 driver

ULLA StorageULLA Query Processing

Commands

ULLA Command Processing

InfoQuery

UpdateRequest

Commands

Bluetoothstack

GPRSModem

ULLA LU APINotificationRequests Notifications

Next generationULLA enabled

driver

LLA

ULLA Event Processing

Events GetAttribute

Link User (Application)Link User (Application) Applications

Key:

ULLA Components

Legacy Drivers

Page 8: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

ULLA in a nutshell (2)

• ULLA LU API exposes three types of services to applications: information querying, trigger notification and commands

• ULLA LP API allows technology specific device drivers to be plugged in to ULLA core to expose information in a uniform way.

• Extensible ULLA data abstraction model organises link parameters of different technologies

• UQL – Use SQL syntax strings to specify query and trigger conditions

Page 9: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

ULLA Demonstration Platforms

• Multimedia streaming platform• Linux user space ULLA and 802.11 LLA

• Connection management platform• Windows CE kernel space and 802.11, GPRS and Bluetooth

LLA’s

• Real-time multimedia platform• Linux user space on “Nomadik™” platform with STM

Phasor 802.11 LLA

• Wireless Sensor Network platform• TinyOS Mica2 & Micaz sensors using nesC language

Page 10: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Multimedia Streaming Demonstrator Platform

• Scenarios• Dynamic Channel Selection

• Frequency, time and other (e.g. spatial) channels / multiplexing schemes

• Avoidance of interference and network congestion

• Adaptive Transcoding • Video codec, resolution and frame rate • More rapid Adaptation of rate to link

performance variation

• Focus on

802.11 WLANVideo server

Video Client 1

Router

IP IP

Ethernet Ethernet

UDP

IP

Ethernet

UDP

IP

802.11Transcoding proxy

UDP UDP

IP IP

Ethernet Ethernet

WLAN AP 2

Ethernet 802.11

WLAN AP 1

Ethernet 802.11

TCP

Netperf server 1

Video Client 2

UDP

IP

802.11

TCP

Netperf server 2

Page 11: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Connection Management Demonstration Platform

• Scenarios• Handle and prioritize the

connection requests coming from multiple applications

• Establish Connections on behalf of the application, using the “best possible” path in the current networking environment

• Monitor the “quality” of established connections

• Try to re-establish a new connection when a link disappears

• Focus on 802.11 & GPRSNote : CeBIT 2006 demo based on this platform was developed by Materna / EMIC

Page 12: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Real-time Multimedia Demonstration Platform

• Scenario• Adapt a real-time

multimedia session to changing wireless network conditions

• In particular to perform codec selection and selection of FEC mechanisms

• Focus on Voice over IP over WLAN

Page 13: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

802.21 Implementation with ULLA

802.21 MIH Function

Protocol and Device Hardware

Applications (Video/Audio/Web)

Connection Management

WLAN Cellular WMAN

L2 Triggers and Events

Information Service

Mobility Management Protocols

Smart Triggers

Information Service

Handover Messages

Handover Management

Handover Policy

Handover Messages IE

EE

80

2.2

1

ULLA Core

Protocol and Device Hardware

Applications (Video/Audio/Web etc.)Connection

Manager

WLAN Cellular WMAN

L2 Triggers and Events

Information Query

Request Notification QueryCommand

Link User API

MIH ULLA Agent

Handover command

UL

LA

ULLAStorage

LLA LLA LLA

Derived from DCN: 21-06-0706-00-0000

Page 14: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

ULLA & 802.21 Event/Command functions

• Handover initiation • ullaDoCmd() - scanAvailableLinks to populate the

information about new available links• ullaRequestNotification() - to setup triggers to be notified

when new links are available

• Network selection• ullaRequestInfo() and ullaRequestNotification () API calls to

select a link that matches a certain criteria.

• Interface activation• ullaDoCmd(), ullaSetAttribute() and ullaConfigureL3() API

calls - to configure the L2 and L3

Page 15: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

ULLA and 802.21 Information Service

• 802.21 Global Network Map could be mapped to ULLA data model

• ULLA Agents placed in network nodes • could gather information & populate map

• all available networks (GPRS, 802.16)• Link layer information (Neighbour maps) • Higher layer services (ISP, MMS)

• could translate link information to RDF schema format• could use a push-pull type service to populate local ULLA

database gather global information available at the .21 Information server

• Possible to implement parts of 802.21 Information Service using ULLA framework

Page 16: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Technology-independent base classes ullaLink

securityLink

Classes for familiesof standards 80211Link

btLinkwsnLinkcellularLink

80216Link

Standard-amendment classes 80211kLink

btEdrLinkhsdpaLink

80216eLink

UMTSLink

Vendor-specificclasses channelBondingLink

btHiddenProfileLink newWsnMacLink

Example LP1 offers links supporting

ullaLink

cellularLink

UMTSLink

mandatory

ULLA extension for 80221 Link classes

• ULLA link hierarchy• Mandatory base class

+ optional classes• 80221Link class can

be an optional class supporting 80221 specific attributes and commands (methods)

• Link providers can support 80221 together with other technologies to permit access to information and link configuration

• 80221 link class can provide “linkup”, “linkgoingdown” etc. event notification

Example LP2offers links supporting

802.11/802.21Links

80221Link

80211Link

ullaLink

80221Link

mandatory

80221Link

channelBondingLink

Page 17: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Link Configure Thresholds –(from 21-06-0739-00-0000-Suggestion about link parameter threshold configuration)

Name Type Valid Range Description

LinkParameterList List N/A A list of following set of parameters:TrafficType,LinkParameterThresholdList

TrafficType INTEGER 0x00- All types0x01- conversational0x02- streaming0x03- interactive0x04- background0x05-0xff: reserved

Traffic classes for which thresholds may be set.

LinkParameterThresholdList List N/A A list of following set of parameters:LinkParameterType,InitiateActionThreshold,RollbackActionThreshold,ExecuteActionThreshold

Link ParameterType Link Quality Parameter Type (8)

N/A Parameters for which thresholds may be set. LinkParameterType is media specific.

InitiateActionThreshold Link parameter Threshold (16)

N/A Threshold value which may cause Upper layers to start “setup” type activities in response to actual parameter values crossing this threshold.

RollbackActionThreshold Link parameter Threshold (16)

N/A Threshold value which may cause Upper layers to cancel or rollback the above setup type operation if the actual parameter values retreat to this threshold.

ExecuteActionThreshold Link parameter Threshold (16)

N/A Threshold value which may cause Upper layers to execute taking appropriate action if the actual parameter values cross this threshold.

Page 18: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

HO Threshold Setting using ULLA Notification Request and (Joined Query)

• Basic query structure• SELECT parameter FROM classes WHERE condition

• Examplevoid HOHandler(RnId_t rnId, ullaResult_t res, void* privdata){

// do a connect on this idint id;CmdDescr_t cmdDescr;if ((ullaResultNextTuple(res) == ULLA_OK) && (ullaResultIntValue(res, 1, &id) == ULLA_OK)) {

cmdDescr.className=“UMTSLink";cmdDescr.cmd=“connect";cmdDescr.id=id;if (ullaPrepareCmd(&cmdDescr) == ULLA_OK)

ullaDoCmd(&cmdDescr, 10000);}ullaResultFree(res);

}

char *query = “SELECT ieee80221Link.id FROM UMTSLink, ieee80221Link WHERE UMTSLink.residualBER < 5E5 AND UMTSLink.txBitRate > 10000 AND ieee80221Link.TrafficType=2”;

RnDescr_t reqNotifDesc;reqNotifDesc.query = (char*)query;reqNotifDesc.count = 0;reqNotifDesc.period = 0;reqNotifDesc.privdata = NULL;ullaRequestNotification(&reqNotifDesc, HOHandler, &rnId, 0);

We get notified each time the id’s of the UMTS links change with condition :

Residual BER < 5x10-5 and Tx bit rate > 10Kbps

So we just connect to the first link meeting the criteria

Page 19: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

HO Threshold & Simple Statistics within ULLA Notification Request

• Basic statistical query• SELECT stat(parameter) FROM classes WHERE condition

• Examplevoid HOHandler(RnId_t rnId, ullaResult_t res, void* privdata) {

char *query = “SELECT ieee80221Link.id, UMTSLink.txBitRate FROM UMTSLink, ieee80221Link WHERE UMTSLink.residualBER < 5E5 AND UMTSLink.txBitRate > 10000 AND ieee80221Link.TrafficType=2”;

int maxbitrate, bitrate, id;ullaResult_t result;

CmdDescr_t cmdDescr;if ((ullaResultIntValue(res, 1, &maxbitrate) == ULLA_OK) && (ullaRequestInfo(query, &result, 0) == ULLA_OK)) {

while (ullaResultNextTuple(result) == ULLA_OK) {if ((ullaResultIntValue(result, 1, &id) == ULLA_OK) && (ullaResultIntValue(result, 2, &bitrate) == ULLA_OK) && (bitrate == maxbitrate)) {

cmdDescr.className=“UMTSLink";cmdDescr.cmd=“connect";cmdDescr.id=id;if (ullaPrepareCmd(&cmdDescr) == ULLA_OK)

ullaDoCmd(&cmdDescr, 10000);break;

} } } ullaResultFree(result);

}ullaResultFree(res);

}char *query = “SELECT MAX( UMTSLink.txBitRate ) FROM UMTSLink, ieee80221Link

WHERE UMTSLink.residualBER < 5E5 AND ieee80221Link.TrafficType=2”;RnDescr_t reqNotifDesc;reqNotifDesc.query = (char*)query;reqNotifDesc.count = 0;reqNotifDesc.period = 0;reqNotifDesc.privdata = NULL;ullaRequestNotification(&reqNotifDesc, HOHandler, &rnId, 0);

We get notified each time the UMTS link with the maximum bit rate changes and the residual BER is < 5x10-5

We connect to this link if it is > 10 Kbps

Page 20: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Setting Optional LP Measurement Configuration for HO Threshold

void HOHandler(RnId_t rnId, ullaResult_t res, void* privdata){// do a connect on this idint id;CmdDescr_t cmdDescr;if ((ullaResultNextTuple(res) == ULLA_OK) && (ullaResultIntValue(res, 1, &id) == ULLA_OK)) {

cmdDescr.className=“ullaLink";cmdDescr.cmd=“connect";cmdDescr.id=id;if (ullaPrepareCmd(&cmdDescr) == ULLA_OK)

ullaDoCmd(&cmdDescr, 10000);}ullaResultFree(res);

}RnDescr_t rnDescr;RnId_t rnId;AttrDescr_t attrDescr;Int val[1]val[0] = -100;attrDescr.id = 1;attrDescr.className = “ullaLinkProvider”;attrDescr.attribute = “ullaLink.txbitrate.window”;attrDescr.qualifier = ULLA_QUAL_MEASUREMENT;attrDescr.type = ULLA_TYPE_INT;attrDescr.numValues = 1;attrDescr.data = (void*)val;ullaSetAttribute (&attrDescr);attrDescr.attribute = “ullaLink.txbitrate.interval”;Val[0] = -10000;ullaSetAttribute (&attrDescr);rnDescr.count = 0;rnDescr.period = 0;rnDescr.privdata = NULL;rnDescr.query = "SELECT ieee80221Link.id FROM ullaLink, ieee80221Link WHERE ullaLink.txBitRate_mean > 10000 AND ieee80221Link.TrafficType=2 ";ullaRequestNotification(&rnDescr,notificationHandler,&rnId,0);

Instructs the Link Provider to compute the average over 100 intervals (with sliding window) to smooth out the bit rate values in dynamic environments

Sets the samples to be time based taken at 10 second intervals, with updates occurring every sample interval (i.e. 10s)

We get notified each time the id’s of the links meeting the criteria change - mean bit rate > 10 Kbps

Update at a rate of not more than once every 10 seconds to avoid ping-pong or false triggering

Page 21: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Link Configuration (ref. LB Issue- #49: Comment 622)

Link_Configure.requestFunction

This primitive is issued by MIH function to control the behavior of a lower layer link.

Semantics of the service primitive

The parameters of the primitive are as follows:Link_Configure.request (

SourceIdentifier,DestinationIdentifier,

LinkIdentifier,

ConfigurationRequestsSets)

•Name •Type •Valid Range •Description

•Configuration Request Sets

•Set of configuration parameters for corresponding interfaces

•N/A •Containing a set of configuration parameters. See table 18 below.

When generated

This primitive is generated by MIHF when it receives the MIH_Configure.request command from the upper layer and attempt to control the behaviors of lower layer link, for example, set some features in the drivers.Effect of receipt

The recipient responds with Link_Configure.confirm primitive.

•Name •Type •Valid Range •Description

•NETWORK_TYPES_IN_USE •INTEGER •0x01 802.3•0x02 802.11•0x03 802.16•0x04 3GPP•0x05 3GPP2

•Set the network type that should be used for the lower layer entity, e.g., a driver.

•OPERATION_MODE •INTEGER •0x00 Normal Mode•0x01 Power Saving Mode•0x02 Power Down

•Change the device’s power mode

•DISABLE_TRANSMITTER •Boolean •N/A •Enable/disable the transmitter of the inter face.

•NETWORK_ID •STRING •N/A •Change to the specified network of an inter face.

•CURRENT_ADDRESS •STRING •N/A •Change the current address to the value specified

•SUSPEND_DRIVER •Boolean •N/A •Suspend or resume of the specified interface.

Page 22: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Link Configuration using ULLA

AttrDescr_t attrDescr;int val[1];val[0] = 1; //802.3attrDescr.id = lpId;attrDescr.className = “ieee80221LinkProvider”;attrDescr.attribute = “NETWORK_TYPES_IN_USE”;attrDescr.qualifier = ULLA_QUAL_EXACT;attrDescr.type = ULLA_TYPE_INT;attrDescr.numValues = 1;attrDescr.data = (void*)val;ullaSetAttribute (&attrDescr);attrDescr.attribute = “OPERATION_MODE”;Val[0] = 0; //NormalattrDescr.numValues = 1;ullaSetAttribute (&attrDescr);

We set the network types and mode of operation via ULLA & LP

Page 23: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Information Service – 802.11device information

• Recommended information to store in 802.21 database (from 21-06-0761-00-000-Network-Selection-MIH-Support):

• SSPN name/realm• SSPN roaming partners• Interworking services by SSPN (including

emergency services)• 802.11 AN parameters:

• Location• Country/regulatory domain• {SSID, ESSID}• PHY types supported• 802.11e QoS support } ULLA currently supported

Page 24: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Using ULLA to get 802.11 LP informationullaResult_t result;int valueCount = 0, deviceCount=0;int mt[100][100], lpId[100];

char *query = “SELECT id, type FROM ieee80211LinkProvider”;if (ullaRequestInfo(query, &result, 0) == ULLA_OK) { while ((ullaResultNextTuple(result) == ULLA_OK) && (deviceCount < 100)) {

valueCount=0; if (ullaResultIntValue(result, 1, &lpId[deviceCount])

== ULLA_OK) { while ((ullaResultIntValue(result, 2, &mt[deviceCount][valueCount])

== ULLA_OK) && (valueCount < 100)) valueCount ++;

} deviceCount++;

} ullaResultFree(result);

}

int linkCount=0;char ssid[100][256];int linkId[100];int len = 256;

char query[100];for (i=0;i<deviceCount;i++) { sprintf( query, “SELECT id, networkName FROM ullaLink WHERE state=%d AND lpid =

%d”, ULLA_MEDIASTATE_CONNECTED, lpId[i] );

if (ullaRequestInfo(query, &result, 0) == ULLA_OK) { while ((ullaResultNextTuple(result) == ULLA_OK) && (linkCount < 100)) {

if (ullaResultIntValue(result, 1, &linkId[linkCount]) == ULLA_OK) {len=256;ullaResultStringValue(result, 1, &ssid[linkCount][0], &len);

} linkCount++;

} ullaResultFree(result);

}}

We get the supported PHY from ULLA media type attribute of the LP

We get the ssid from ULLA networkName attribute of the link

Page 25: IEEE 802.21 MEDIA INDEPENDENT HANDOVER  DCN:  21-07-0029-00

Issues that need to be addressed

• ULLA link class definitions• Harmonise the link technology specific class definitions with 802.21 requirements

• Develop a 802.21 link class

• Control of ULLA specification• GOLLUM has finished and so the specification has no official “owner”

• Sourceforge open source project• Data model definitions need to be consistently defined within standards groups or via open source approach