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

Post on 11-Jan-2016

58 views 1 download

Tags:

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 of 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

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

Examples using recent 802.21 issues / suggestions raised by contributors

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)

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.

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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.

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

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

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

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