1 / 25

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

daryl
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Using the Generic Open Link Layer API for Unified Media Access within 802.21 Examples using recent 802.21 issues / suggestions raised by contributors

  3. 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)

  4. 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.

  5. 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

  6. 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

  7. Key: Applications ULLA Components Legacy Drivers ULLA in a nutshell (1) Link User (Application) Link User (Application) ULLA LU API Notification Requests InfoQuery Commands Notifications ULLA Command ULLA Query ULLA Event ULLA Storage Processing Processing Processing UpdateRequest Commands Events GetAttribute ULLA LP API LL Adapter LL Adapter LL Adapter LLA Next generation Bluetooth GPRS 802 . 11 driver ULLA enabled stack Modem driver

  8. 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

  9. 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

  10. 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 WLAN Video Client 1 Netperf server 1 UDP TCP IP WLAN AP 1 Video server 802.11 Transcoding proxy Ethernet 802.11 UDP Router UDP UDP IP IP IP IP IP Video Client 2 Netperf server 2 Ethernet Ethernet Ethernet Ethernet Ethernet UDP TCP WLAN AP 2 IP Ethernet 802.11 802.11

  11. 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 & GPRS Note : CeBIT 2006 demo based on this platform was developed by Materna / EMIC

  12. 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

  13. 802.21 Implementation with ULLA Applications (Video/Audio/Web) Applications (Video/Audio/Web etc.) Connection Management Connection Manager Handover Policy MIH ULLA Agent ULLA Storage Handover Management Link User API Mobility Management Protocols 802.21 MIH Function ULLA Core Smart Triggers Handover Messages Request Notification Command Information Service Query IEEE 802.21 ULLA Handover Messages Handover command Information Service Information Query L2 Triggers and Events L2 Triggers and Events Protocol and Device Hardware LLA LLA LLA Protocol and Device Hardware WLAN Cellular WMAN WLAN Cellular WMAN Derived from DCN: 21-06-0706-00-0000

  14. 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

  15. 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

  16. m a n d a t o r y 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 Technology - independent base classes ullaLink securityLink m a n d a Classes for families t o r y of standards 80216 Link 80211 Link Example LP 1 offers links supporting cellularLink wsnLink btLink 80221Link ullaLink Standard - amendment cellular Link classes 80216 eLink 80211 kLink 80221Link hsdpaLink btEdrLink UMTS Link UMTSLink Vendor - specific Example LP2 offers links supporting 802.11/ 802.21Links classes channelBondingLink ullaLink 80211Link btHiddenProfileLink newWsnMacLink 80221Link channelBondingLink

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

  18. HO Threshold Setting using ULLA Notification Request and (Joined Query) • Basic query structure • SELECT parameter FROM classes WHERE condition • Example void HOHandler(RnId_t rnId, ullaResult_t res, void* privdata){ // do a connect on this id int 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 changewith condition : Residual BER < 5x10-5 and Tx bit rate > 10Kbps So we just connect to the first link meeting the criteria

  19. HO Threshold & Simple Statistics within ULLA Notification Request • Basic statistical query • SELECT stat(parameter) FROM classes WHERE condition • Example void 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

  20. Setting Optional LP Measurement Configuration for HO Threshold void HOHandler(RnId_t rnId, ullaResult_t res, void* privdata){ // do a connect on this id int 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); 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 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)

  21. Link Configuration (ref. LB Issue- #49: Comment 622) • Link_Configure.request • Function • 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 • ) 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.

  22. Link Configuration using ULLA AttrDescr_t attrDescr; int val[1]; val[0] = 1; //802.3 attrDescr.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; //Normal attrDescr.numValues = 1; ullaSetAttribute (&attrDescr); We set the network types and mode of operation via ULLA & LP

  23. 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

  24. Using ULLA to get 802.11 LP information ullaResult_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

  25. 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

More Related