27.03.2014 Views

Development and Implementation Report on the QoS Components ...

Development and Implementation Report on the QoS Components ...

Development and Implementation Report on the QoS Components ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

IST-2000-25394 Project Moby Dick<br />

D0202<br />

<str<strong>on</strong>g>Development</str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>Implementati<strong>on</strong></str<strong>on</strong>g><br />

<str<strong>on</strong>g>Report</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> <strong>QoS</strong> Comp<strong>on</strong>ents for<br />

Moby Dick<br />

C<strong>on</strong>tractual Date of Delivery to <strong>the</strong> CEC: May 31, 2003<br />

Actual Date of Delivery to <strong>the</strong> CEC: June 05, 2003<br />

Author(s): partners in WP2 (cf. page 3)<br />

Participant(s):<br />

partners in WP2<br />

Workpackage:<br />

WP2<br />

Security:<br />

Public<br />

Nature:<br />

<str<strong>on</strong>g>Report</str<strong>on</strong>g><br />

Versi<strong>on</strong>: 1.0<br />

Total number of pages: 97<br />

Abstract:<br />

Future telecommunicati<strong>on</strong> networks, <str<strong>on</strong>g>and</str<strong>on</strong>g> in particular networks bey<strong>on</strong>d 3 rd Generati<strong>on</strong>, will be based <strong>on</strong><br />

an “all-IP” architecture. Issues such as Quality of Service (<strong>QoS</strong>), Mobility <str<strong>on</strong>g>and</str<strong>on</strong>g> Au<strong>the</strong>nticati<strong>on</strong>,<br />

Authorizati<strong>on</strong>, Accounting <str<strong>on</strong>g>and</str<strong>on</strong>g> Charging (AAAC), <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>ir respective interoperati<strong>on</strong>, must be h<str<strong>on</strong>g>and</str<strong>on</strong>g>led in<br />

such scenarios. This document describes <strong>the</strong> specificati<strong>on</strong>s, implementati<strong>on</strong>s <str<strong>on</strong>g>and</str<strong>on</strong>g> tests of <strong>the</strong> different<br />

comp<strong>on</strong>ents of <strong>the</strong> Moby Dick <strong>QoS</strong> architecture, i.e. <strong>the</strong> <strong>QoS</strong> Manager, <strong>the</strong> <strong>QoS</strong> Broker, <strong>the</strong> Radio<br />

C<strong>on</strong>vergence Functi<strong>on</strong>, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> DSCP Marking Software, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>ir interacti<strong>on</strong>s with <strong>the</strong> Moby Dick<br />

mobility <str<strong>on</strong>g>and</str<strong>on</strong>g> security entities.<br />

Keyword list:<br />

<str<strong>on</strong>g>Implementati<strong>on</strong></str<strong>on</strong>g>, <strong>QoS</strong> Broker, <strong>QoS</strong> Manager, DSCP Marking Software, AAAC <str<strong>on</strong>g>and</str<strong>on</strong>g> mobility<br />

interacti<strong>on</strong> with <strong>QoS</strong> entities.<br />

CEC Deliverable Number D0202 1 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Executive Summary<br />

This document describes <strong>the</strong> specificati<strong>on</strong>, implementati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> tests of <strong>the</strong> different comp<strong>on</strong>ents of <strong>the</strong><br />

Moby Dick <strong>QoS</strong> architecture, including <strong>the</strong> <strong>QoS</strong> Manager, <strong>the</strong> <strong>QoS</strong> Broker, <strong>the</strong> Radio C<strong>on</strong>vergence<br />

Functi<strong>on</strong>, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> DSCP Marking Software, as well as <strong>the</strong>ir interacti<strong>on</strong>s with <strong>the</strong> Moby Dick mobility <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

security sub-systems.<br />

CEC Deliverable Number D0202 2 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Authors<br />

Partner Name Ph<strong>on</strong>e / Fax / E-mail<br />

CRM<br />

CRM<br />

UC3M<br />

UC3M<br />

UC3M<br />

PTIn<br />

PTIn<br />

PTIn<br />

PTIn<br />

EURECOM<br />

Christophe Beaujean<br />

Ph<strong>on</strong>e: +33 1 69 35 25 83<br />

Fax: +33 1 69 35 25 01<br />

E-mail: mailto:christophe.beaujean@crm.mot.com<br />

Nesrine Chaher<br />

Ph<strong>on</strong>e: +33 1 69 35 48 12<br />

Fax: +33 1 69 35 25 01<br />

E-mail: mailto:nesrine.chaher@crm.mot.com<br />

Ant<strong>on</strong>io Cuevas<br />

Ph<strong>on</strong>e: +34 91-624-8747<br />

Fax: +34 91 6248749<br />

E-mail : mailto:acuevas@it.uc3m.es<br />

Carlos Garcia Garcia<br />

Ph<strong>on</strong>e: +34 91-624-8747<br />

Fax: +34 91 6248749<br />

E-mail : mailto:cgarcia@it.uc3m.es<br />

Pedro Ant<strong>on</strong>io Vico Solano<br />

Ph<strong>on</strong>e: +34 916249959<br />

Fax: +34 916248749<br />

E-mail: pvico@it.uc3m.es<br />

Victor Marques<br />

Ph<strong>on</strong>e: +351 234 403654<br />

Fax: +351 234 420722<br />

E-mail: victor-m-marques@ptinovacao.pt<br />

Pedro G<strong>on</strong>çalves<br />

Ph<strong>on</strong>e: +351 234 403654<br />

Fax: +351 234 420722<br />

E-mail: pasg@av.it.pt<br />

Rui Aguiar<br />

Ph<strong>on</strong>e: +351 234 403654<br />

Fax: +351 234 420722<br />

E-mail: mailto:ruilaa@av.it.pt<br />

Francisco F<strong>on</strong>tes<br />

Ph<strong>on</strong>e: +351 234 403654<br />

Fax: +351 234 420722<br />

Michelle Wetterwald<br />

Ph<strong>on</strong>e: +33 (0) 4.93.00.26.31<br />

Fax: +33 (0) 4.93.00.26.27<br />

E-mail: mailto:michelle.wetterwald@eurecom.fr<br />

CEC Deliverable Number D0202 3 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

UKR<br />

Piotr Pacyna<br />

Ph<strong>on</strong>e: +48 12 6345582<br />

Fax: +48 12 6342372<br />

E-mail: pacyna@kt.agh.edu.pl<br />

CEC Deliverable Number D0202 4 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Table of C<strong>on</strong>tents<br />

1. TERMINOLOGY ........................................................................................ 9<br />

2. THE MOBY DICK QOS ARCHITECTURE.............................................. 13<br />

2.1 Scenarios........................................................................................................................................13<br />

2.1.1 User registrati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> au<strong>the</strong>nticati<strong>on</strong>........................................................................................13<br />

2.1.2 Service request <str<strong>on</strong>g>and</str<strong>on</strong>g> authorisati<strong>on</strong>............................................................................................13<br />

2.1.3 H<str<strong>on</strong>g>and</str<strong>on</strong>g>over.................................................................................................................................14<br />

2.2 <strong>QoS</strong> delivery process.....................................................................................................................14<br />

2.3 DSCP codes....................................................................................................................................15<br />

3. SOFTWARE SPECIFICATION................................................................ 15<br />

3.1 Overview of <strong>the</strong> software comp<strong>on</strong>ents.........................................................................................15<br />

3.2 <strong>QoS</strong> Manager.................................................................................................................................16<br />

3.2.1 Overview of <strong>the</strong> functi<strong>on</strong>alities...............................................................................................16<br />

3.2.2 Procedures...............................................................................................................................17<br />

3.3 <strong>QoS</strong> Broker....................................................................................................................................19<br />

3.3.1 WebGUI..................................................................................................................................21<br />

3.3.2 NetProbe .................................................................................................................................21<br />

3.3.3 QBrokerEngine .......................................................................................................................21<br />

3.3.4 <strong>QoS</strong> Broker Interfaces.............................................................................................................21<br />

3.3.4.1 BrokerInterface ...................................................................................................................21<br />

3.3.4.2 NMSInterface......................................................................................................................21<br />

3.3.4.3 AAACInterface...................................................................................................................22<br />

3.3.4.4 RouterInterface ...................................................................................................................22<br />

3.3.4.5 NMSInterface......................................................................................................................22<br />

3.3.4.6 RGWClient .........................................................................................................................22<br />

3.3.4.7 Data format for communicati<strong>on</strong>s between Radio Gateway <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong>Broker.......................22<br />

3.3.4.8 Messages exchanged between Radio Gateway <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong>Broker .........................................23<br />

3.3.5 <str<strong>on</strong>g>Implementati<strong>on</strong></str<strong>on</strong>g> details of selected interfaces .........................................................................23<br />

3.3.5.1 AAACInterface...................................................................................................................23<br />

3.3.5.2 RouterInterface ...................................................................................................................23<br />

3.3.5.3 VirtualRouter ......................................................................................................................24<br />

3.3.5.4 CLIDriver............................................................................................................................24<br />

3.3.5.5 COPSDriver ........................................................................................................................25<br />

3.3.5.6 Messages exchanged between AR <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong>Broker ............................................................26<br />

3.3.6 Interface summary ..................................................................................................................27<br />

3.3.7 <str<strong>on</strong>g>Implementati<strong>on</strong></str<strong>on</strong>g> of databases...................................................................................................27<br />

3.3.7.1 NetworkDB.........................................................................................................................27<br />

3.3.7.2 NetStatus.............................................................................................................................28<br />

3.4 The DSCP marking software .......................................................................................................28<br />

3.4.1 Operati<strong>on</strong> ................................................................................................................................29<br />

3.4.2 DMS Architecture...................................................................................................................29<br />

3.4.3 DSCP Matching ......................................................................................................................29<br />

3.4.3.1 Packet filtering....................................................................................................................29<br />

3.4.3.2 DSCP Matching Table ........................................................................................................32<br />

3.4.4 DSCP marking ........................................................................................................................34<br />

3.4.5 Packet re-marking...................................................................................................................34<br />

3.4.6 DSCP updates .........................................................................................................................34<br />

CEC Deliverable Number D0202 5 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

3.5 The radio resource management .................................................................................................35<br />

4. QOS SIGNALING IN MOBY DICK.......................................................... 36<br />

4.1 Signaling between <strong>QoS</strong> Manager <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong> Broker ....................................................................36<br />

4.1.1 Router registrati<strong>on</strong> ..................................................................................................................37<br />

4.1.2 <strong>QoS</strong> c<strong>on</strong>figurati<strong>on</strong> dialogue ....................................................................................................37<br />

4.1.3 Resource allocati<strong>on</strong> dialogue ..................................................................................................40<br />

4.1.4 Queues state report..................................................................................................................42<br />

4.1.5 FHO c<strong>on</strong>text transfer from <strong>the</strong> old Access Router to <strong>the</strong> <strong>QoS</strong> Broker....................................43<br />

4.1.6 FHO <strong>QoS</strong> C<strong>on</strong>text transfer from <strong>the</strong> <strong>QoS</strong> Broker to <strong>the</strong> new AR (nAR)................................44<br />

4.1.7 C<strong>on</strong>necti<strong>on</strong> check dialogue .....................................................................................................47<br />

4.1.8 Closing COPS c<strong>on</strong>necti<strong>on</strong>.......................................................................................................48<br />

4.2 Signaling between <strong>the</strong> <strong>QoS</strong>B.f <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> AAAC.f..........................................................................49<br />

5. TESTS AND PERFORMANCES ............................................................. 50<br />

5.1 <strong>QoS</strong> manager tests ........................................................................................................................50<br />

5.1.1 Test c<strong>on</strong>diti<strong>on</strong>s........................................................................................................................50<br />

5.1.2 COPS sequences <str<strong>on</strong>g>and</str<strong>on</strong>g> st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard compliance tests.....................................................................51<br />

5.1.2.1 Access Router initializati<strong>on</strong> ................................................................................................51<br />

5.1.2.2 Access Router resource allocati<strong>on</strong> ......................................................................................52<br />

5.1.2.3 Access Router queues state report.......................................................................................53<br />

5.1.2.4 Access Router mobility signaling messages .......................................................................54<br />

5.1.2.5 Access Router timeout c<strong>on</strong>necti<strong>on</strong> deleti<strong>on</strong>........................................................................56<br />

5.1.2.6 Access Router c<strong>on</strong>necti<strong>on</strong> check dialogue ..........................................................................56<br />

5.1.2.7 Access Router closing COPS c<strong>on</strong>necti<strong>on</strong>............................................................................57<br />

5.1.3 Quality of Service tests ...........................................................................................................59<br />

5.1.3.1 Denying access to a n<strong>on</strong>-authorized traffic .........................................................................59<br />

5.1.3.2 Access interface <strong>QoS</strong> test....................................................................................................60<br />

5.1.3.3 Core interface policing test .................................................................................................61<br />

5.1.3.4 Dynamic rec<strong>on</strong>figurati<strong>on</strong> test..............................................................................................62<br />

5.2 <strong>QoS</strong> Broker <str<strong>on</strong>g>and</str<strong>on</strong>g> DSCP marking tests .........................................................................................63<br />

5.2.1 First tests series.......................................................................................................................63<br />

5.2.1.1 Filters loading .....................................................................................................................64<br />

5.2.1.2 Packet marking....................................................................................................................64<br />

5.2.2 Sec<strong>on</strong>d tests series...................................................................................................................65<br />

5.2.2.1 DSCP values loaded from <strong>the</strong> network ...............................................................................65<br />

5.2.2.2 Destinati<strong>on</strong> Opti<strong>on</strong> ..............................................................................................................66<br />

5.2.2.3 Hop-by-hop Opti<strong>on</strong>.............................................................................................................67<br />

5.2.2.4 Sub-opti<strong>on</strong>s .........................................................................................................................67<br />

5.2.2.5 Fragment header..................................................................................................................67<br />

5.2.2.6 Routing header....................................................................................................................68<br />

5.2.2.7 Au<strong>the</strong>nticati<strong>on</strong> header .........................................................................................................68<br />

5.2.2.8 ESP header..........................................................................................................................68<br />

5.2.2.9 ICMPv6 header ...................................................................................................................68<br />

5.2.2.10 Tunneled packets inner header........................................................................................68<br />

5.3 Radio resource management tests ...............................................................................................68<br />

6. CONCLUSIONS ...................................................................................... 69<br />

7. REFERENCES ........................................................................................ 70<br />

8. APPENDIX A: QUALITY OF SERVICE CONFIGURATION ................... 71<br />

CEC Deliverable Number D0202 6 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

8.1 <strong>QoS</strong>Broker c<strong>on</strong>figurati<strong>on</strong> files .....................................................................................................71<br />

8.2 <strong>QoS</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> policing trees created <strong>on</strong> <strong>the</strong> Router ............................................................................74<br />

8.3 <strong>QoS</strong> re-c<strong>on</strong>figurati<strong>on</strong> ....................................................................................................................77<br />

8.4 Outsourced policing towards core network................................................................................78<br />

9. APPENDIX B: DEBUG MODE ACCESS ROUTER OUTPUT LINES..... 80<br />

9.1 Access Router Initialisati<strong>on</strong>..........................................................................................................80<br />

9.2 Access Router Resource allocati<strong>on</strong>..............................................................................................82<br />

9.3 Access Router queues state report...............................................................................................83<br />

9.4 Access Router mobility signaling messages ................................................................................84<br />

9.4.1 Old Access Router ..................................................................................................................84<br />

9.4.2 New Access Router.................................................................................................................84<br />

9.5 Access Router timeout c<strong>on</strong>necti<strong>on</strong> deleti<strong>on</strong> ................................................................................85<br />

9.6 Access Router C<strong>on</strong>necti<strong>on</strong> check dialogue..................................................................................85<br />

9.7 Access Router closing COPS c<strong>on</strong>necti<strong>on</strong>.....................................................................................85<br />

9.8 Denying access to a n<strong>on</strong>-authorized traffic test..........................................................................85<br />

CEC Deliverable Number D0202 7 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Introducti<strong>on</strong><br />

The Moby Dick project aims to define, implement <str<strong>on</strong>g>and</str<strong>on</strong>g> evaluate an IPv6-based mobility-enabled end-toend<br />

<strong>QoS</strong> architecture. The implementati<strong>on</strong> supports three different technologies: TD-CDMA (UMTS),<br />

Wireless LAN (802.11) <str<strong>on</strong>g>and</str<strong>on</strong>g> E<strong>the</strong>rnet. The <strong>QoS</strong> architecture leads to a potentially scalable infrastructure,<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> is based <strong>on</strong> a DiffServ model [1]. The architecture provides a complete <strong>QoS</strong> management soluti<strong>on</strong>,<br />

including <strong>the</strong> definiti<strong>on</strong> of <strong>QoS</strong> Brokers (enhanced B<str<strong>on</strong>g>and</str<strong>on</strong>g>width Brokers) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong> Attendants (<strong>QoS</strong> proxies<br />

located in each access router), a set of interacti<strong>on</strong>s with AAAC <str<strong>on</strong>g>and</str<strong>on</strong>g> Mobile IP, specific signaling<br />

soluti<strong>on</strong>s, <str<strong>on</strong>g>and</str<strong>on</strong>g> techniques for <strong>QoS</strong> mapping between different layers <str<strong>on</strong>g>and</str<strong>on</strong>g> technologies.<br />

The different Moby Dick <strong>QoS</strong> entities, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>ir interacti<strong>on</strong>s with mobility <str<strong>on</strong>g>and</str<strong>on</strong>g> security comp<strong>on</strong>ents were<br />

described in deliverable [2] <str<strong>on</strong>g>and</str<strong>on</strong>g> in [3].<br />

In this document, we provide specify different <strong>QoS</strong> comp<strong>on</strong>ents implemented <str<strong>on</strong>g>and</str<strong>on</strong>g> integrated in <strong>the</strong> Moby<br />

Dick test-bed. First, in secti<strong>on</strong> 2, we recall <strong>the</strong> main dynamics of <strong>the</strong> Moby Dick <strong>QoS</strong> architecture, <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

<strong>the</strong> main functi<strong>on</strong>alities <str<strong>on</strong>g>and</str<strong>on</strong>g> interacti<strong>on</strong>s of its comp<strong>on</strong>ents. This secti<strong>on</strong> provides a brief descripti<strong>on</strong> of<br />

<strong>the</strong> User Registrati<strong>on</strong>, Service Request <str<strong>on</strong>g>and</str<strong>on</strong>g> Authorisati<strong>on</strong> as well as H<str<strong>on</strong>g>and</str<strong>on</strong>g>over processes. In secti<strong>on</strong> 3, we<br />

detail <strong>the</strong> specificati<strong>on</strong>s of <strong>the</strong> different <strong>QoS</strong> software comp<strong>on</strong>ents, while secti<strong>on</strong> 4 describes <strong>the</strong><br />

interacti<strong>on</strong>s between <strong>the</strong>se comp<strong>on</strong>ents, <strong>the</strong> informati<strong>on</strong> <strong>the</strong>y exchange, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> messages formats. The<br />

last secti<strong>on</strong> 5 is focused <strong>on</strong> <strong>the</strong> various tests <str<strong>on</strong>g>and</str<strong>on</strong>g> measurements intended to dem<strong>on</strong>strate <strong>the</strong> quality of <strong>the</strong><br />

overall implementati<strong>on</strong>.<br />

CEC Deliverable Number D0202 8 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

1. Terminology<br />

This secti<strong>on</strong> defines <strong>the</strong> terminology used within <strong>the</strong> Work Package 2 (WP2) of <strong>the</strong> Moby Dick project.<br />

AAAC Architecture<br />

The AAAC Architecture defines <strong>the</strong> overall architecture of those modules <str<strong>on</strong>g>and</str<strong>on</strong>g> comp<strong>on</strong>ents required to<br />

offer a full set of AAAC tasks.<br />

AAAC Attendant<br />

A AAAC Attendant is an agent in <strong>the</strong> AR that attends to <strong>the</strong> client's requests. It is likely to require that <strong>the</strong><br />

client provide some credentials that can be au<strong>the</strong>nticated before access to <strong>the</strong> resources is permitted. The<br />

attendant for instance can c<strong>on</strong>tact <strong>the</strong> local AAA server, who in turn communicates with <strong>the</strong> home AAA<br />

server of <strong>the</strong> mobile node.<br />

AAAC Server<br />

The AAA server is an entity that receives service requests from <strong>the</strong> Service Equipment or from o<strong>the</strong>r<br />

AAA servers. A request received by <strong>the</strong> AAA server is inspected <str<strong>on</strong>g>and</str<strong>on</strong>g> evaluated c<strong>on</strong>sidering policies<br />

stored in a Policy Repository. To evaluate policy c<strong>on</strong>diti<strong>on</strong>s, it may be necessary to c<strong>on</strong>sult o<strong>the</strong>r AAA<br />

servers or <strong>the</strong> service equipment. The AAA server also performs policy acti<strong>on</strong>s itself. It holds sessi<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

transacti<strong>on</strong> states, records accounting data, <str<strong>on</strong>g>and</str<strong>on</strong>g> logs events. The event log can be used for verifying <strong>the</strong><br />

systems behaviour or for a later auditing process. A AAAC.h will always refer to a AAAC Server in <strong>the</strong><br />

user home domain, <str<strong>on</strong>g>and</str<strong>on</strong>g> AAAC.f to a AAAC Server in a foreign domain.<br />

Access Network (AN)<br />

An IP network, which includes <strong>on</strong>e or more Access Network Routers. The terms Access Network <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

(administrative) domain are often used interchangeably since often an Access Network has its own<br />

administrati<strong>on</strong>.<br />

Access Router (AR)<br />

An Access Network Router residing <strong>on</strong> <strong>the</strong> edge of an Access Network <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>nected to <strong>on</strong>e or more<br />

access points. An Access Router offers IP c<strong>on</strong>nectivity to MHs. The Access Router may include<br />

intelligence bey<strong>on</strong>d a simple forwarding service offered by ordinary IP routers.<br />

Accounting<br />

Accounting is <strong>the</strong> process of collecting informati<strong>on</strong> for billing <str<strong>on</strong>g>and</str<strong>on</strong>g> resource usage management.<br />

Administrative Domain (AD)<br />

An intranet, or a collecti<strong>on</strong> of networks, computers, <str<strong>on</strong>g>and</str<strong>on</strong>g> databases under a comm<strong>on</strong> administrati<strong>on</strong>.<br />

Computer entities operating in a comm<strong>on</strong> administrati<strong>on</strong> may be assumed to share administratively<br />

created security associati<strong>on</strong>s.<br />

Auditing<br />

Auditing is <strong>the</strong> process of examining informati<strong>on</strong> <strong>on</strong> a provided service to check whe<strong>the</strong>r <strong>the</strong> service has<br />

been provided correctly <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> c<strong>on</strong>tractual negotiated parameters have been met. Auditing could be<br />

performed by an independent third party in order to prevent fraud.<br />

Au<strong>the</strong>nticati<strong>on</strong><br />

Au<strong>the</strong>nticati<strong>on</strong> is <strong>the</strong> verificati<strong>on</strong> of <strong>the</strong> claimed identity of a subject performing an acti<strong>on</strong>. The subject<br />

can be a service user or a service provider.<br />

Authorizati<strong>on</strong><br />

The act of determining if a particular right, such as access to some resource, can be granted to <strong>the</strong><br />

presenter of a particular credential.<br />

Charging<br />

Charging is <strong>the</strong> process of deriving (m<strong>on</strong>etary) costs for service usage based <strong>on</strong> accounting data, service<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> customer specific tariffs.<br />

Classificati<strong>on</strong><br />

Classificati<strong>on</strong> is <strong>the</strong> process of selecting a packet in a traffic stream based <strong>on</strong> <strong>the</strong> c<strong>on</strong>tent of some porti<strong>on</strong><br />

of <strong>the</strong> packet header. The result of this process is <strong>the</strong> assignment of a DSCP, i.e. a CoS, to a traffic stream.<br />

CEC Deliverable Number D0202 9 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Class of Service (CoS)<br />

A CoS is a way of categorizing <strong>the</strong> traffic. A set of <strong>QoS</strong> parameters is applied to each of those classes,<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> all <strong>the</strong> flows needing to optimize <strong>the</strong> same <strong>QoS</strong> parameters have <strong>the</strong> same CoS.<br />

Core Network (CN)<br />

A Core Network is a typical wired IP network, supporting DiffServ. Each AR is c<strong>on</strong>nected to a Core<br />

Network.<br />

Core Router (CR)<br />

A CR is an interior node of a Core network.<br />

Corresp<strong>on</strong>dent Node (CN)<br />

An IP node with which <strong>the</strong> mobile node communicates.<br />

DiffServ Code Point (DSCP)<br />

A DSCP is a field in <strong>the</strong> IP header of each packet. This field represents <strong>the</strong> CoS of <strong>the</strong> traffic stream <strong>the</strong><br />

packet bel<strong>on</strong>gs to. However, for a same CoS, a DSCP may have different values in different DS Domains.<br />

DiffServ (DS) Domain<br />

A DS Domain is an AD in which DiffServ is supported by all <strong>the</strong> nodes. All <strong>the</strong>se nodes use <strong>the</strong> same<br />

DSCPs.<br />

Egress Router (ER)<br />

An ER is DS Domain boundary node c<strong>on</strong>necting two DS Domains toge<strong>the</strong>r. An ER is seen as a boundary<br />

node by which <strong>the</strong> traffic leaves <strong>the</strong> DS Domain.<br />

Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>over module (FHm)<br />

A software module implementing Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>Over (FHO) procedures.<br />

Horiz<strong>on</strong>tal H<str<strong>on</strong>g>and</str<strong>on</strong>g>over<br />

From <strong>the</strong> IP point of view a horiz<strong>on</strong>tal h<str<strong>on</strong>g>and</str<strong>on</strong>g>over happens if <strong>the</strong> MN communicates with its old AR <str<strong>on</strong>g>and</str<strong>on</strong>g> its<br />

new AR via <strong>the</strong> same network interface. Horiz<strong>on</strong>tal h<str<strong>on</strong>g>and</str<strong>on</strong>g>over is typically also an intra-technology<br />

h<str<strong>on</strong>g>and</str<strong>on</strong>g>over but it can be an inter-technology h<str<strong>on</strong>g>and</str<strong>on</strong>g>over if <strong>the</strong> MN can do a h<str<strong>on</strong>g>and</str<strong>on</strong>g>over between two different<br />

technologies without changing <strong>the</strong> network interface seen by <strong>the</strong> IP layer.<br />

Ingress Router (IR)<br />

An IR is DS Domain boundary node c<strong>on</strong>necting two DS Domains toge<strong>the</strong>r. An IR is seen as a boundary<br />

node by which <strong>the</strong> traffic enters in <strong>the</strong> DS Domain.<br />

Inter-Domain H<str<strong>on</strong>g>and</str<strong>on</strong>g>over<br />

When <strong>the</strong> MH moves to a new AD <strong>the</strong>n this h<str<strong>on</strong>g>and</str<strong>on</strong>g>over occurs. This requires some sort of host mobility<br />

across ADs, which has to be provided by <strong>the</strong> external IP core. Note that this would have to involve <strong>the</strong><br />

assignment of a new IP address to <strong>the</strong> MH.<br />

Intra-Domain H<str<strong>on</strong>g>and</str<strong>on</strong>g>over<br />

When <strong>the</strong> MH changes ARs inside <strong>the</strong> same AD <strong>the</strong>n this h<str<strong>on</strong>g>and</str<strong>on</strong>g>over occurs. Such a h<str<strong>on</strong>g>and</str<strong>on</strong>g>over is not<br />

necessarily visible outside <strong>the</strong> AD. In case <strong>the</strong> ANG serving <strong>the</strong> MH changes, this h<str<strong>on</strong>g>and</str<strong>on</strong>g>over is seen<br />

outside <strong>the</strong> AD due to a change in <strong>the</strong> routing paths. The IP address by which <strong>the</strong> MH is reachable does<br />

not change. Note that <strong>the</strong> ANG may change for <strong>on</strong>ly some of <strong>the</strong> MH's data flows.<br />

Marking<br />

Marking is <strong>the</strong> process of setting <strong>the</strong> DSCP field of <strong>the</strong> IP packets with a value that corresp<strong>on</strong>ds to a CoS.<br />

Metering<br />

Metering is <strong>the</strong> process of determining <strong>the</strong> packets compliance to <strong>the</strong> traffic parameters. The goal of this<br />

process is to verify if <strong>the</strong> traffic is in-profile or out-of-profile.<br />

Mobile IP for Linux (MIPL)<br />

A Mobile IP implementati<strong>on</strong> for Linux.<br />

Mobile Node (MN), Mobile Terminal (MT)<br />

An IP node capable of changing its point of attachment to <strong>the</strong> network. The Mobile Node may have<br />

routing functi<strong>on</strong>ality.<br />

Mobile Terminal Networking Manager (MTNM)<br />

A MT entity in charge of taking <strong>the</strong> decisi<strong>on</strong> to execute <strong>the</strong> h<str<strong>on</strong>g>and</str<strong>on</strong>g>over <str<strong>on</strong>g>and</str<strong>on</strong>g> attach procedures.<br />

CEC Deliverable Number D0202 10 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Network Management System (NMS) Server.<br />

A NMS Server is an entity that makes core network c<strong>on</strong>figurati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> defines <strong>the</strong> available resources for<br />

<strong>the</strong> <strong>QoS</strong> Brokers in each moment.<br />

Network View of <strong>the</strong> User Profile (NVUP)<br />

From <strong>the</strong> network point of view, <strong>on</strong>ly a small set of that data stored in <strong>the</strong> User Profile is needed. This is<br />

<strong>the</strong> NVUP, which c<strong>on</strong>tains <strong>QoS</strong> relevant informati<strong>on</strong> c<strong>on</strong>cerning <strong>the</strong> services available to <strong>the</strong> user.<br />

Per Domain Behavior (PDB)<br />

A PDB is a specific PHB (or, if applicable, list of PHBs) <str<strong>on</strong>g>and</str<strong>on</strong>g> traffic c<strong>on</strong>diti<strong>on</strong>ing requirements in DS<br />

domain. So, a PDB is a service that is applied to flows through <strong>the</strong> domain. It is <strong>the</strong> expected treatment<br />

that an identifiable or target group of packets will receive from "edge-to-edge" of a DS domain.<br />

Per Hop Behavior (PHB)<br />

A PHB is <strong>the</strong> way packets will be processed by a DiffServ-capable network node. A PHB is defined as<br />

an externally observable forwarding behaviour applied at a DiffServ-compliant node to a DiffServ<br />

behaviour aggregate.<br />

Policy Decisi<strong>on</strong> Point (PDP)<br />

A logical entity that makes policy decisi<strong>on</strong>s for itself or for o<strong>the</strong>r network elements that request such<br />

decisi<strong>on</strong>s.<br />

Policy Enforcement Point (PEP)<br />

A logical entity that enforces policy decisi<strong>on</strong>s.<br />

Policy Repository (PR)<br />

A policy repository can be defined from two perspectives: (a) A specific data store that holds policy rules,<br />

<strong>the</strong>ir c<strong>on</strong>diti<strong>on</strong>s <str<strong>on</strong>g>and</str<strong>on</strong>g> acti<strong>on</strong>s, <str<strong>on</strong>g>and</str<strong>on</strong>g> related policy data. A database or directory would be an example of such<br />

a store. (b) A logical c<strong>on</strong>tainer representing <strong>the</strong> administrative scope <str<strong>on</strong>g>and</str<strong>on</strong>g> naming of policy rules, <strong>the</strong>ir<br />

c<strong>on</strong>diti<strong>on</strong>s <str<strong>on</strong>g>and</str<strong>on</strong>g> acti<strong>on</strong>s, <str<strong>on</strong>g>and</str<strong>on</strong>g> related policy data. A “<strong>QoS</strong> policy” domain would be an example of such a<br />

c<strong>on</strong>tainer. This logical perspective will be used within this document. A Policy Repository is a model<br />

abstracti<strong>on</strong> representing an administratively defined, logical c<strong>on</strong>tainer for reusable policy elements.<br />

Policy Server (PS)<br />

A policy server determines a marketing term whose definiti<strong>on</strong> is not precise. Originally, [WSS+01]<br />

referenced a policy server. As <strong>the</strong> RFC evolved, this term became more precise <str<strong>on</strong>g>and</str<strong>on</strong>g> known as <strong>the</strong> Policy<br />

Decisi<strong>on</strong> Point (PDP). Today, <strong>the</strong> term policy server is used in marketing brochures <str<strong>on</strong>g>and</str<strong>on</strong>g> o<strong>the</strong>r literature to<br />

refer specifically to a PDP or to ano<strong>the</strong>r entity that uses/services policies.<br />

Quality-of-Service (<strong>QoS</strong>)<br />

Quality of Service (<strong>QoS</strong>) means providing c<strong>on</strong>sistent, predictable data delivery service. <strong>QoS</strong> is to <strong>the</strong><br />

ability of a network element (e.g. an applicati<strong>on</strong>, host or router) to have some level of assurance that its<br />

traffic <str<strong>on</strong>g>and</str<strong>on</strong>g> service requirements can be satisfied. To enable <strong>QoS</strong> requires <strong>the</strong> cooperati<strong>on</strong> of all network<br />

layers from top-to-bottom, as well as every network element from end-to-end.<br />

<strong>QoS</strong> Manager<br />

The <strong>QoS</strong> manager is a software entity located in <strong>the</strong> Access Router. It will be in charged of identifying<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> forwarding services requests coming from a mobile terminal, <str<strong>on</strong>g>and</str<strong>on</strong>g> it will receive <str<strong>on</strong>g>and</str<strong>on</strong>g> execute orders<br />

coming from <strong>the</strong> <strong>QoS</strong> Brokers in order to allocate resources.<br />

<strong>QoS</strong> Broker (<strong>QoS</strong>B)<br />

The <strong>QoS</strong> Broker is an entity that performs network resources management. This entity is resp<strong>on</strong>sible of<br />

resource allocati<strong>on</strong> to <strong>the</strong> customer, <str<strong>on</strong>g>and</str<strong>on</strong>g> unused resources release. Resources will be allocated by <strong>the</strong> <strong>QoS</strong><br />

Broker <strong>on</strong>ly in <strong>the</strong> AGs. Besides, a <strong>QoS</strong> Broker interacts with AAA to manage service requests coming<br />

from <strong>the</strong> user. A <strong>QoS</strong>B.h will always refer to a <strong>QoS</strong> Broker in <strong>the</strong> user home domain, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong>B.f to a<br />

<strong>QoS</strong> Broker in a foreign domain.<br />

<strong>QoS</strong> Mapping<br />

<strong>QoS</strong> Mapping is <strong>the</strong> process of translating <strong>QoS</strong> attributes (or <strong>QoS</strong> needs) from a upper layer to a lower<br />

layer. For example, DiffServ <strong>QoS</strong> attributes (at IP level) can be mapped into UMTS <strong>QoS</strong> attributes.<br />

<strong>QoS</strong> Provisi<strong>on</strong>ing<br />

The installati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>figurati<strong>on</strong> of <strong>the</strong> <strong>QoS</strong> services in <strong>the</strong> network nodes.<br />

CEC Deliverable Number D0202 11 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Radio C<strong>on</strong>vergence Functi<strong>on</strong> (RCF)<br />

An interface with <strong>the</strong> radio layer, mapping <strong>the</strong> IP-level <strong>QoS</strong> requirements into radio <strong>QoS</strong> parameters.<br />

Radio Gateway (RG)<br />

Radio Gateway is an entity that supports interworking between <strong>the</strong> IPv6 backb<strong>on</strong>e <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> TD-CDMA<br />

access network. It can be used with <strong>the</strong> Moby Dick TD-CDMA access as well as o<strong>the</strong>rs (e.g.<br />

IEEE802.11e, etc).<br />

Scheduling<br />

Scheduling allows, thanks to queuing techniques like Weight Fair Queuing (WFQ), to offer a fair share of<br />

resources to each flow according to its priority.<br />

Service<br />

A service is a performance offered by a provider. In c<strong>on</strong>trast to goods, services are usually intangible <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

producti<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>suming happens simultaneously. Services can be very different. A service can be for<br />

instance a 2 hour videoc<strong>on</strong>ference including audio, video <str<strong>on</strong>g>and</str<strong>on</strong>g> whiteboard, <strong>the</strong> guaranteed transmissi<strong>on</strong> of<br />

100000 packets with a high priority, <strong>the</strong> provisi<strong>on</strong>ing of accounting records, etc.<br />

Service Level Agreement (SLA)<br />

A SLA is defined as a ‘service c<strong>on</strong>tract that specifies <strong>the</strong> forwarding service a customer should receive’.<br />

It can also include informati<strong>on</strong> that is ‘of pricing, c<strong>on</strong>tractual or o<strong>the</strong>r business nature’. It might also<br />

include technical informati<strong>on</strong> that is not part of <strong>the</strong> DiffServ architecture per se (e.g. service availability).<br />

Service Level Specificati<strong>on</strong> (SLS)<br />

‘A Service Level Specificati<strong>on</strong> (SLS) is a set of parameters <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>ir values which toge<strong>the</strong>r define <strong>the</strong><br />

service offered to a traffic stream by a DS domain.’<br />

Shaping<br />

Shaping is <strong>the</strong> process of achieving a target flow rate. It generally c<strong>on</strong>sists in limiting <strong>the</strong> maximum<br />

output rate of flow with special queue management techniques, like <strong>the</strong> Token Bucket for example.<br />

User Profile<br />

A User Profile is associated with each user. The User Profile stores all informati<strong>on</strong> related with that user,<br />

such as informati<strong>on</strong> about <strong>the</strong> SLA, Au<strong>the</strong>nticati<strong>on</strong>, Authorizati<strong>on</strong>, Accounting, Charging, etc.<br />

Vertical H<str<strong>on</strong>g>and</str<strong>on</strong>g>over<br />

In a vertical h<str<strong>on</strong>g>and</str<strong>on</strong>g>over <strong>the</strong> MH's network interface to <strong>the</strong> Access Network changes. Vertical h<str<strong>on</strong>g>and</str<strong>on</strong>g>over is<br />

typically an inter-technology h<str<strong>on</strong>g>and</str<strong>on</strong>g>over but it may also be an intra-technology h<str<strong>on</strong>g>and</str<strong>on</strong>g>over if <strong>the</strong> MH has<br />

several interfaces of <strong>the</strong> same type.<br />

CEC Deliverable Number D0202 12 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

2. The Moby Dick <strong>QoS</strong> architecture<br />

Workpackage 2 (WP2) aims to define <str<strong>on</strong>g>and</str<strong>on</strong>g> implement <strong>the</strong> Moby Dick <strong>QoS</strong> comp<strong>on</strong>ents, i.e. <strong>QoS</strong> Broker,<br />

<strong>QoS</strong> Attendant in <strong>the</strong> AR, <strong>QoS</strong> middleware for Mobile Terminal <str<strong>on</strong>g>and</str<strong>on</strong>g> radio support for <strong>QoS</strong>. WP2 also<br />

defines, in collaborati<strong>on</strong> with WP3 <str<strong>on</strong>g>and</str<strong>on</strong>g> WP4, <strong>the</strong> interacti<strong>on</strong>s between <strong>the</strong> <strong>QoS</strong>, mobility <str<strong>on</strong>g>and</str<strong>on</strong>g> AAAC subsystems<br />

for different scenarios. In this secti<strong>on</strong> we briefly describe <strong>the</strong>se scenarios, <str<strong>on</strong>g>and</str<strong>on</strong>g> track <strong>the</strong><br />

processing of a single packet in different levels of <strong>the</strong> protocol stack in each <strong>QoS</strong> comp<strong>on</strong>ent of <strong>the</strong> <strong>QoS</strong><br />

architecture, i.e <strong>the</strong> way a packet can receive appropriate <strong>QoS</strong> treatment.<br />

2.1 Scenarios<br />

Moby Dick network is based <strong>on</strong> a DiffServ model which is associated with CAC algorithms <str<strong>on</strong>g>and</str<strong>on</strong>g> resource<br />

management performed by <strong>QoS</strong> Brokers. Before a user is allowed to use network resources, he or she<br />

must be au<strong>the</strong>nticated <str<strong>on</strong>g>and</str<strong>on</strong>g> authorised, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>on</strong>ly <strong>the</strong>n <strong>the</strong> admissi<strong>on</strong> c<strong>on</strong>trol will be performed for <strong>the</strong><br />

specific service that will be used. If <strong>the</strong> resource requirements are within <strong>the</strong> profile of a user <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

resources are available, <strong>the</strong> <strong>QoS</strong> broker will allocate <strong>the</strong>m <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> user will be able to use <strong>the</strong> service.<br />

After this process is c<strong>on</strong>cluded, <strong>the</strong> infrastructure maintains <strong>the</strong> allocated resources while <strong>the</strong> user moves<br />

between different access networks within <str<strong>on</strong>g>and</str<strong>on</strong>g> between administrative domains.<br />

2.1.1 User registrati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> au<strong>the</strong>nticati<strong>on</strong><br />

First, when a user enters <strong>the</strong> network, he has to register. The user is supposed to have a Service Level<br />

Agreement (SLA) with his network operator which defines a set of services. The goal of <strong>the</strong> registrati<strong>on</strong><br />

is to au<strong>the</strong>nticate <strong>the</strong> user, i.e. to give him <strong>the</strong> right to access <strong>the</strong> network. The MT is c<strong>on</strong>nected to an<br />

Access Router (AR).<br />

An AAAC Attendant, located in <strong>the</strong> AR, acts as a proxy to <strong>the</strong> AAAC Server: it detects <strong>the</strong> user<br />

registrati<strong>on</strong> request <str<strong>on</strong>g>and</str<strong>on</strong>g> forwards it to <strong>the</strong> AAAC Server for user au<strong>the</strong>nticati<strong>on</strong>. First, <strong>the</strong> AAAC<br />

Attendant sends an AA request over AAA protocol to his AAAC.f (i.e. <strong>the</strong> AAAC server in <strong>the</strong> foreign<br />

domain), which forwards <strong>the</strong> request to <strong>the</strong> AAAC.h (i.e. <strong>the</strong> AAAC server in <strong>the</strong> home domain)<br />

according to <strong>the</strong> Network Address Identifier (NAI). Note that in case <strong>the</strong> user is not roaming, <strong>the</strong> AAAC.f<br />

is identical to <strong>the</strong> AAAC.h. The AAAC.h au<strong>the</strong>nticates <str<strong>on</strong>g>and</str<strong>on</strong>g> authorises <strong>the</strong> user <str<strong>on</strong>g>and</str<strong>on</strong>g> sends a AAA protocol<br />

reply back to <strong>the</strong> AAAC.f. In this message <strong>the</strong> network permissi<strong>on</strong>s of <strong>the</strong> user are already indicated. The<br />

AAAC.f may <strong>the</strong>n perform local authorisati<strong>on</strong> decisi<strong>on</strong>s. The AAAC.f sends back a reply to <strong>the</strong> AR,<br />

which forwards all relevant data to <strong>the</strong> MN via <strong>the</strong> user registrati<strong>on</strong> protocol.<br />

Besides, <strong>the</strong> AAAC.f maintains a User Profile c<strong>on</strong>taining informati<strong>on</strong> about <strong>the</strong> user, such as its current<br />

IP address, as well as <strong>QoS</strong>-relevant informati<strong>on</strong>. During <strong>the</strong> au<strong>the</strong>nticati<strong>on</strong> process, in order to prepare <strong>the</strong><br />

authorisati<strong>on</strong> or denial of <strong>the</strong> future Service Requests coming from <strong>the</strong> MT, <strong>the</strong> <strong>QoS</strong>B.f (<strong>QoS</strong> Broker in<br />

<strong>the</strong> foreign domain) receives a subset of this profile - in particular <strong>the</strong> <strong>QoS</strong>-related informati<strong>on</strong> - from <strong>the</strong><br />

AAAC.f. These steps are shown in Figure 1.<br />

1: AA Req.<br />

6: AA Resp.<br />

(DSCPs)<br />

AAAC<br />

2: AA Req.<br />

Server<br />

5a: AA Resp.<br />

AR<br />

3: AA Req.<br />

4: AA Resp.<br />

5b: NVUP Dump<br />

<strong>QoS</strong><br />

Broker<br />

AAAC<br />

Server<br />

Foreign<br />

Domain<br />

Home<br />

Domain<br />

Figure 1: <strong>QoS</strong>-related steps in <strong>the</strong> user registrati<strong>on</strong> process<br />

2.1.2 Service request <str<strong>on</strong>g>and</str<strong>on</strong>g> authorisati<strong>on</strong><br />

After being registered, <strong>the</strong> user is entitled to request a service. A service request is implicit, i.e. c<strong>on</strong>tained<br />

in data packets. In fact, <strong>the</strong> MT directly sends data packets marked with a DiffServ Code Point (DSCP)<br />

identifying <strong>the</strong> requested <strong>QoS</strong> service. For <strong>the</strong> purpose of <strong>the</strong> dem<strong>on</strong>strati<strong>on</strong> of <strong>the</strong> capabilities, <strong>the</strong><br />

CEC Deliverable Number D0202 13 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

services in Moby Dick test-bed are differentiated in terms of Class of Service (CoS) <str<strong>on</strong>g>and</str<strong>on</strong>g> b<str<strong>on</strong>g>and</str<strong>on</strong>g>width. Up<strong>on</strong><br />

receiving a user’s first packet marked with a certain DSCP, a <strong>QoS</strong> Attendant, located in <strong>the</strong> AR, triggers a<br />

service request to <strong>the</strong> <strong>QoS</strong> Broker <strong>on</strong> behalf of <strong>the</strong> user, according to this DSCP.<br />

Based <strong>on</strong> <strong>the</strong> <strong>QoS</strong> related part of <strong>the</strong> user profile received from <strong>the</strong> AAAC Server, <strong>the</strong> <strong>QoS</strong> Broker, which<br />

is in charge of managing access network resources, verifies if <strong>the</strong> user is authorised to access <strong>the</strong> service<br />

he is asking for. Next, if <strong>the</strong> resources are available, <strong>the</strong> <strong>QoS</strong> Broker allocates <strong>the</strong> needed resources in <strong>the</strong><br />

AR, by c<strong>on</strong>figuring <strong>the</strong> output queues <str<strong>on</strong>g>and</str<strong>on</strong>g>/or shaping <strong>the</strong> traffic, <str<strong>on</strong>g>and</str<strong>on</strong>g> in <strong>the</strong> RG (when a TD-CDMA<br />

equipment is used), by triggering a <strong>QoS</strong> mapping between <strong>the</strong> IP <strong>QoS</strong> class <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> radio <strong>QoS</strong> class, <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

by c<strong>on</strong>sequently c<strong>on</strong>figuring <strong>the</strong> appropriate radio bearers. Thus, Moby Dick can support <strong>QoS</strong> without<br />

explicit reservati<strong>on</strong>s at call-setup time, as in Figure 2.<br />

1: 1 st packet<br />

AR1<br />

4: 1 st Packet AR2 7: 1 st Packet<br />

4/8: Service<br />

7: Service Reject<br />

Reject<br />

2: Service Req.<br />

3: AR C<strong>on</strong>fig.<br />

<strong>QoS</strong><br />

Broker<br />

Domain 1<br />

6: AR C<strong>on</strong>fig.<br />

5: Service Req.<br />

<strong>QoS</strong><br />

Broker<br />

Domain 2<br />

Figure 2: Service request <str<strong>on</strong>g>and</str<strong>on</strong>g> service authorisati<strong>on</strong><br />

2.1.3 H<str<strong>on</strong>g>and</str<strong>on</strong>g>over<br />

When a MT moves across <strong>the</strong> network, a few acti<strong>on</strong>s are required to maintain <strong>QoS</strong>. We <strong>on</strong>ly c<strong>on</strong>sider <strong>the</strong><br />

case of an intra-domain h<str<strong>on</strong>g>and</str<strong>on</strong>g>over: <strong>the</strong> inter-domain h<str<strong>on</strong>g>and</str<strong>on</strong>g>over is similar to a re-registrati<strong>on</strong> of <strong>the</strong> user in a<br />

new foreign domain.<br />

The following steps are required in order to enable a Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>over (FHO) while maintaining a user’s<br />

<strong>QoS</strong>. When a h<str<strong>on</strong>g>and</str<strong>on</strong>g>over is initiated, some informati<strong>on</strong> about <strong>the</strong> services <strong>the</strong> MT is currently using, or is<br />

authorised to use, is forwarded to <strong>the</strong> new <strong>QoS</strong> Broker managing <strong>the</strong> new AR (Figure 3).<br />

C<strong>on</strong>sequently, <strong>the</strong> new <strong>QoS</strong> Broker is able to c<strong>on</strong>figure <strong>the</strong> new AR. This step allows <strong>the</strong> MT to quickly<br />

access <strong>the</strong> network resources from <strong>the</strong> new AR, without getting <strong>the</strong> AAAC architecture involved.<br />

2: Router Solicitati<strong>on</strong> for proxy<br />

1: Router Adv.<br />

nAR<br />

3c: AR C<strong>on</strong>fig.<br />

n. <strong>QoS</strong><br />

Broker<br />

3: HO Initiate<br />

4: HO Ack<br />

3b: HoA, nCoA, DSCPs<br />

5 <str<strong>on</strong>g>and</str<strong>on</strong>g> subsequent steps<br />

oAR<br />

3a: nAR, oCoA, nCoA<br />

o. <strong>QoS</strong><br />

Broker<br />

Figure 3: <strong>QoS</strong>-related steps in FHO process<br />

2.2 <strong>QoS</strong> delivery process<br />

Packet-by-packet <strong>QoS</strong> differentiati<strong>on</strong> requires marking <strong>the</strong>m with a DSCP. The network operator assigns<br />

to each DSCP a certain level of <strong>QoS</strong> (in terms of b<str<strong>on</strong>g>and</str<strong>on</strong>g>width <str<strong>on</strong>g>and</str<strong>on</strong>g> priority). The marking operati<strong>on</strong> is d<strong>on</strong>e<br />

in <strong>the</strong> MT, at <strong>the</strong> IPv6 level, <str<strong>on</strong>g>and</str<strong>on</strong>g> is transparent to <strong>the</strong> applicati<strong>on</strong>s. Applicati<strong>on</strong>s are assumed to be <strong>QoS</strong>unaware<br />

legacy applicati<strong>on</strong>s which generate packets normally. Then, <strong>the</strong> packets are filtered at <strong>the</strong> IP<br />

CEC Deliverable Number D0202 14 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

level, thanks to filters which are c<strong>on</strong>figurable at <strong>the</strong> user level <str<strong>on</strong>g>and</str<strong>on</strong>g> stored at <strong>the</strong> Linux kernel level. The<br />

multi-field packet classificati<strong>on</strong> is d<strong>on</strong>e with <strong>the</strong>se filters, <str<strong>on</strong>g>and</str<strong>on</strong>g> when <strong>the</strong>re is a match <strong>the</strong> packet is marked<br />

with <strong>the</strong> appropriate DSCP. The filtering <str<strong>on</strong>g>and</str<strong>on</strong>g> marking process is d<strong>on</strong>e when a packet is ready to be<br />

transmitted to layer 2, i.e. when <strong>the</strong> header(s) of <strong>the</strong> packet c<strong>on</strong>tain(s) all <strong>the</strong> informati<strong>on</strong> needed to<br />

identify <strong>the</strong> applicati<strong>on</strong>s <strong>the</strong> packets bel<strong>on</strong>g to. Thus, for example, it is possible to mark a ftp flow by<br />

filtering <strong>the</strong> UDP destinati<strong>on</strong> port of each packet.<br />

When a packet is transmitted by an au<strong>the</strong>nticated user, <str<strong>on</strong>g>and</str<strong>on</strong>g> uses an authorised service, <strong>the</strong> <strong>QoS</strong> Manager,<br />

in <strong>the</strong> AR, places <strong>the</strong> packet in <strong>the</strong> appropriate outgoing queue, according to <strong>the</strong> DSCP. If <strong>the</strong> user sends a<br />

packet with a wr<strong>on</strong>g DSCP (i.e. usese an unauthorised service), <strong>the</strong> packet is simply dropped at <strong>the</strong> AR.<br />

Finally, when a packet crosses a TD-CDMA equipment, <strong>the</strong> RG maps <strong>the</strong> IP <strong>QoS</strong> class of <strong>the</strong> packet into<br />

a radio <strong>QoS</strong> class (at layer 2), <str<strong>on</strong>g>and</str<strong>on</strong>g> makes <strong>the</strong> packet use <strong>the</strong> appropriate radio <strong>QoS</strong> resources (<strong>the</strong> radio<br />

bearers) allocated for it.<br />

2.3 DSCP codes<br />

Table 1. presents <strong>the</strong> DSCP used in <strong>the</strong> Moby Dick test bed:<br />

Service Relative<br />

Typical Usage<br />

Name Class Priority<br />

Service parameters<br />

Descripti<strong>on</strong><br />

DSCP<br />

SIG AF41 2 Unspecified Signaling (network usage) 0x22<br />

S1 EF 1 Peak BW: 32 kbit/s Real time services 0x2e<br />

S2 AF21 3 CIR: 256 kbit/s<br />

Priority (urgent)<br />

data transfer<br />

0x12<br />

Three drop precedences (kbps): Olympic service<br />

S3 AF1* 4<br />

AF11 – 64<br />

AF12 – 128<br />

(better <strong>the</strong>n<br />

BE:streaming, ftp,<br />

0x0a<br />

0x0c<br />

AF13 – 256<br />

etc) 0x0e<br />

S4 BE 0 Peak bit rate: 32 kbit/s Best Effort (BE) 0x00<br />

S5 BE 0 Peak bit rate: 64 kbit/s Best effort 0x02<br />

S6 BE 0 Peak bit rate: 256 kbit/s Best effort 0x04<br />

Table 1: Classes of Service <str<strong>on</strong>g>and</str<strong>on</strong>g> associated DSCP codes<br />

‘1’ denotes <strong>the</strong> highest priority, ‘4’ <strong>the</strong> lowest. ‘0’ means ‘no priority’. Note that <strong>the</strong> previous priorities<br />

defined in D0201 were: 2a, 1, 2b, 2c, 3, 3 <str<strong>on</strong>g>and</str<strong>on</strong>g> 3. There is a <strong>on</strong>e-to-<strong>on</strong>e corresp<strong>on</strong>dence between Services<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> DSCP. In all Moby Dick domains, <str<strong>on</strong>g>and</str<strong>on</strong>g> for <strong>the</strong> test-bed purpose <strong>on</strong>ly, <strong>the</strong> DSCPs are assumed to be<br />

<strong>the</strong> same for same classes of service. This is called a ‘per world behavior’.<br />

3. Software specificati<strong>on</strong><br />

To make different parts of <strong>the</strong> network architecture (security, mobility <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong>) work toge<strong>the</strong>r, Moby<br />

Dick defines several specific modules fulfilling specific functi<strong>on</strong>s, such as resource management, or<br />

entities for interfacing AAAC-<strong>QoS</strong>-Mobility. In this secti<strong>on</strong>, we describe <strong>the</strong> software comp<strong>on</strong>ents<br />

involved in <strong>the</strong> global <strong>QoS</strong> delivery process. These comp<strong>on</strong>ents, integrated at different levels of <strong>the</strong><br />

protocols stack, are located in three network entities: <strong>the</strong> Mobile Terminal, <strong>the</strong> Access Router <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

<strong>QoS</strong> Broker.<br />

3.1 Overview of <strong>the</strong> software comp<strong>on</strong>ents<br />

If a <strong>QoS</strong> Broker can be c<strong>on</strong>sidered as a st<str<strong>on</strong>g>and</str<strong>on</strong>g>al<strong>on</strong>e <str<strong>on</strong>g>and</str<strong>on</strong>g> independent entity, as shown in Figure 1, <strong>the</strong>n<br />

o<strong>the</strong>r <strong>QoS</strong> software comp<strong>on</strong>ents are often located in <strong>the</strong> same entity, <str<strong>on</strong>g>and</str<strong>on</strong>g> are part of <strong>the</strong> same protocol<br />

stack, though <strong>the</strong>y operate at different levels.<br />

CEC Deliverable Number D0202 15 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Mobile Terminal<br />

NCP<br />

IPv6, MIPL, IPsec,<br />

DSCP marking<br />

MTNM<br />

RCF<br />

Net. Device Drivers<br />

Access Router<br />

<strong>QoS</strong><br />

Attendant<br />

FHm<br />

AAA<br />

Attendant<br />

IPv6,IPsec, DiffServ<br />

packet filter<br />

Net. Device Drivers<br />

Blocks developed inside <strong>the</strong> AAAC architecture<br />

Blocks developed inside <strong>the</strong> <strong>QoS</strong> architecture<br />

Blocks developed inside <strong>the</strong> Mobility architecture<br />

Blocks not defined by Moby Dick<br />

Figure 4: Software blocks in <strong>the</strong> MT <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> AR<br />

3.2 <strong>QoS</strong> Manager<br />

3.2.1 Overview of <strong>the</strong> functi<strong>on</strong>alities<br />

In Moby Dick, <strong>the</strong> AR (shown in Figure 4.) performs functi<strong>on</strong>s typical of a DiffServ Edge Router: traffic<br />

policing <str<strong>on</strong>g>and</str<strong>on</strong>g> shaping. Marking functi<strong>on</strong> in Moby Dick is not performed by <strong>the</strong> <strong>QoS</strong> Manager but by <strong>the</strong><br />

MT. Fur<strong>the</strong>r <strong>the</strong> <strong>QoS</strong> Attendant located in <strong>the</strong> Access Router also manages <strong>the</strong> different priority queues,<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> per hop behaviours. Thanks to a <strong>QoS</strong> Manager, <strong>the</strong> AR delegates <strong>the</strong> admissi<strong>on</strong> c<strong>on</strong>trol decisi<strong>on</strong>s to<br />

<strong>the</strong> <strong>QoS</strong> Broker, following <strong>the</strong> COPS (Comm<strong>on</strong> Open Policy Service) model, <strong>the</strong> AR being <strong>the</strong> Policy<br />

Enforcement Point (PEP) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> <strong>QoS</strong> Broker <strong>the</strong> Policy Decisi<strong>on</strong> Point (PDP). The AR m<strong>on</strong>itors <strong>the</strong><br />

traffic going from <strong>the</strong> access interfaces to <strong>the</strong> core interfaces, extracts some parameters of <strong>the</strong> packets <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

c<strong>on</strong>structs <strong>the</strong> query to <strong>the</strong> <strong>QoS</strong> Broker with <strong>the</strong>se parameters.<br />

In Moby Dick, <strong>the</strong> AR also plays a role in <strong>the</strong> FHO. With <strong>the</strong> Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>over module (FHm), <strong>the</strong> old AR<br />

(oAR) notifies <strong>the</strong> <strong>QoS</strong> Broker of <strong>the</strong> preparati<strong>on</strong> of a FHO to a new AR (nAR). If <strong>the</strong> <strong>QoS</strong> Broker<br />

decides that <strong>the</strong> FHO can be made, it will push <strong>the</strong> <strong>QoS</strong> c<strong>on</strong>figurati<strong>on</strong> to <strong>the</strong> new AR.<br />

The AR performs also Per Hop Behaviour (PHB). PHBs are provided in <strong>the</strong> access interfaces for <strong>the</strong><br />

packets going from <strong>the</strong> core network to <strong>the</strong> access network, which an be e.g. a radio link with scarce<br />

resources. DiffServ queue management <str<strong>on</strong>g>and</str<strong>on</strong>g> packet scheduling mechanisms are used to perform <strong>the</strong> PHB.<br />

<strong>QoS</strong> guarantees are achieved in cooperati<strong>on</strong> between <strong>the</strong> PHB enforcement at <strong>the</strong> AR <str<strong>on</strong>g>and</str<strong>on</strong>g> resource<br />

management by <strong>QoS</strong> Broker following <strong>the</strong> COPS provisi<strong>on</strong>ing model. The AR informs <strong>the</strong> <strong>QoS</strong> Broker of<br />

<strong>the</strong> load of its queues <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> <strong>QoS</strong> Broker may rec<strong>on</strong>figure <strong>the</strong>m.<br />

These two functi<strong>on</strong>s (Policing/Shapping <str<strong>on</strong>g>and</str<strong>on</strong>g> PHP) of <strong>the</strong> <strong>QoS</strong> Manager are represented in Figure 5.<br />

<strong>QoS</strong>Manager in Access Router<br />

Access<br />

Network<br />

PHB<br />

Policing <str<strong>on</strong>g>and</str<strong>on</strong>g> Shapping<br />

Policing deccissi<strong>on</strong>s<br />

are outsourced<br />

Core<br />

Network<br />

PHB is c<strong>on</strong>figured using<br />

Provisi<strong>on</strong>ning model<br />

<strong>QoS</strong>Broker<br />

Interfaces<br />

Packet flow<br />

COPS<br />

messages<br />

Figure 5: Software blocks in <strong>the</strong> MT <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> AR<br />

CEC Deliverable Number D0202 16 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

The behaviour of <strong>the</strong> <strong>QoS</strong> Manager can be represented using a state machine, described in Figure 6 <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

explained in Table 2.<br />

0<br />

Q4<br />

Send REQ(FHOi)<br />

4<br />

5<br />

7<br />

8<br />

Q5<br />

Send KA<br />

Q0<br />

Send CO<br />

Q2<br />

1 Q1<br />

2 3 Q3 16<br />

C<strong>on</strong>figure<br />

Send REQ(c<strong>on</strong>f)<br />

Wait<br />

Send RS(c<strong>on</strong>f)<br />

Q9<br />

Clean up<br />

Send CC<br />

15<br />

Q7 Wait for<br />

<strong>QoS</strong>Bmessage<br />

6<br />

13<br />

9<br />

10<br />

Q6<br />

Send RS(acc)<br />

6b<br />

14<br />

Q8<br />

Install<br />

filter<br />

11<br />

12<br />

Q7<br />

Send REQ(AF)<br />

Figure 6: <strong>QoS</strong> Manager state machine<br />

No.<br />

Signal<br />

0 Start<br />

1 CA received<br />

2 DEC(c<strong>on</strong>f) received<br />

3 Always<br />

4 Signal from FHO module FAST_HANDOVER_INI<br />

5 Always (or DEC from <strong>QoS</strong>B)<br />

6 Signal from FHO module: START_QOSB_LISTEN<br />

6b Unsolicited DEC(C<strong>on</strong>text Transfer) message received<br />

7 KA timer expires<br />

8 KA received<br />

9 Accountig timer expires<br />

10 Always<br />

11 Time out to check for new packets <str<strong>on</strong>g>and</str<strong>on</strong>g> packet with new (CoA,DSCP,DestAddress) found<br />

12 Positive DEC(AF) received<br />

13 Always<br />

14 Negative DEC(AF) received<br />

15 DEC(AF) with rec<strong>on</strong>f. Flag set received<br />

16 End<br />

Table 2: <strong>QoS</strong> Manager state machine<br />

3.2.2 Procedures<br />

The following procedure describes <strong>the</strong> decisi<strong>on</strong> making process (DEC) in case of a packet which does not<br />

match any filter (Fig. 8):<br />

CEC Deliverable Number D0202 17 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

unknown (CoA,DSCP)<br />

Request Authorizati<strong>on</strong><br />

to <strong>the</strong> <strong>QoS</strong>B<br />

-Send Autho. REQ to BB<br />

Process<br />

<strong>QoS</strong>B resp<strong>on</strong>se<br />

DEC from <strong>the</strong> <strong>QoS</strong>B received<br />

DEC is negative<br />

Unauthorized<br />

Flow<br />

END<br />

C<strong>on</strong>figure<br />

DiffServ<br />

logic<br />

DEC is positive<br />

-Install new filter using<br />

The apropiate API functi<strong>on</strong>s<br />

Update<br />

DSCP table<br />

-Add entry with <strong>the</strong><br />

(CoA,DSCP) <str<strong>on</strong>g>and</str<strong>on</strong>g> TTL<br />

END<br />

Figure 8: Decisi<strong>on</strong> making process for packet with unknown DSCP<br />

When a FHO is initiated in <strong>the</strong> oAR, <strong>the</strong> following procedure is launched (Figure 9):<br />

FHI received<br />

Initiate FH<br />

procedures as oAR<br />

-Send <strong>the</strong> nAR, oCoA, nCoA to BB<br />

END<br />

Figure 9: FHO process in <strong>the</strong> oAR<br />

Procedure depicted in Figure 10 describes a <strong>QoS</strong> c<strong>on</strong>text transfer in <strong>the</strong> AR when a FHO occurs:<br />

DEC received<br />

Update <strong>QoS</strong> c<strong>on</strong>text<br />

-Update DSCP tabe<br />

-c<strong>on</strong>figure filters in DiffServ<br />

logic<br />

END<br />

Figure 10: C<strong>on</strong>text transfer during FHO process in <strong>the</strong> oAR<br />

The following procedure (Figure 11) occurs when <strong>the</strong> <strong>QoS</strong> Manager is (re)c<strong>on</strong>figured:<br />

CEC Deliverable Number D0202 18 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Inicite (re)c<strong>on</strong>figurati<strong>on</strong><br />

Delete old<br />

c<strong>on</strong>figurati<strong>on</strong><br />

Query <strong>QoS</strong>B for new<br />

C<strong>on</strong>figurati<strong>on</strong><br />

-Send c<strong>on</strong>f. REQ to <strong>QoS</strong>B<br />

DEC received<br />

C<strong>on</strong>figure<br />

DiffServ<br />

logic<br />

-Install new queues using<br />

The apropiate API functi<strong>on</strong>s<br />

Send <str<strong>on</strong>g>Report</str<strong>on</strong>g><br />

To BB<br />

END<br />

Figure 11: <strong>QoS</strong> Manager re-c<strong>on</strong>figurati<strong>on</strong><br />

This procedure is launched at start up of <strong>the</strong> <strong>QoS</strong> Manager (Figure 11):<br />

AR startup<br />

Open COPS<br />

c<strong>on</strong>necti<strong>on</strong><br />

- Send CO message <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

Receive CA message<br />

C<strong>on</strong>figurati<strong>on</strong><br />

procedure<br />

END<br />

Figure 12: FHO process in <strong>the</strong> oAR<br />

3.3 <strong>QoS</strong> Broker<br />

This secti<strong>on</strong> describes <strong>the</strong> software specificati<strong>on</strong> of <strong>the</strong> B<str<strong>on</strong>g>and</str<strong>on</strong>g>width Broker (<strong>QoS</strong> Broker).<br />

A b<str<strong>on</strong>g>and</str<strong>on</strong>g>width broker is an entity that takes admissi<strong>on</strong> c<strong>on</strong>trol decisi<strong>on</strong>s <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>figures all access<br />

network comp<strong>on</strong>ents, according to a set of c<strong>on</strong>diti<strong>on</strong>s given by administrati<strong>on</strong> entities:<br />

It will enumerate <strong>the</strong> Moby Dick comp<strong>on</strong>ents that interact with <strong>the</strong> <strong>QoS</strong> Broker, <strong>the</strong> broker’s<br />

interfaces, <str<strong>on</strong>g>and</str<strong>on</strong>g> all its internal descripti<strong>on</strong>.<br />

On each <strong>QoS</strong> Broker interface we will discuss <strong>the</strong> messages changed between <strong>the</strong> <strong>QoS</strong> Broker <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

<strong>the</strong> o<strong>the</strong>r MobyDick’s comp<strong>on</strong>ents, its format <str<strong>on</strong>g>and</str<strong>on</strong>g> when <strong>the</strong>y will occur. In <strong>the</strong> end of <strong>the</strong> document we<br />

will present <strong>the</strong> <strong>QoS</strong> Broker databases format, <str<strong>on</strong>g>and</str<strong>on</strong>g> discuss its purpose.<br />

Figure 13. shows a view of all <strong>the</strong> entities of <strong>the</strong> Moby Dick <strong>QoS</strong>-related entities that interact with<br />

<strong>QoS</strong>Broker.<br />

CEC Deliverable Number D0202 19 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

AAAC<br />

Server<br />

NMS<br />

Entity<br />

Router<br />

QBroker<br />

QBroker2<br />

Computer<br />

Cisco/Linux<br />

Linux Router<br />

Radio tower<br />

Cisco<br />

Router<br />

Cisco<br />

Router<br />

Laptop<br />

Teleph<strong>on</strong>e<br />

Workstati<strong>on</strong><br />

Server<br />

Figure 13: Moby Dick <strong>QoS</strong>-related entities<br />

These entities are:<br />

• AAAC Server. The entity resp<strong>on</strong>sible for au<strong>the</strong>nticating user informati<strong>on</strong>,<br />

identifying <strong>the</strong> proper SLA (Service Level Agreement), keeping accounting<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> charging informati<strong>on</strong>.<br />

• NMS Server. The entity that makes core network c<strong>on</strong>figurati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> defines<br />

<strong>the</strong> available resources for <strong>the</strong> broker in each moment.<br />

• “O<strong>the</strong>r brokers”. Each broker has his own domain of acti<strong>on</strong>. To keep endto-end<br />

<strong>QoS</strong> all brokers in <strong>the</strong> path need to interact.<br />

• Network routers. Routers have to be c<strong>on</strong>figured according to <strong>the</strong> user<br />

profile, <str<strong>on</strong>g>and</str<strong>on</strong>g> network c<strong>on</strong>diti<strong>on</strong>s, so that <strong>QoS</strong> c<strong>on</strong>diti<strong>on</strong>s can be achieved.<br />

The Qos broker will be <strong>the</strong> resp<strong>on</strong>sible for <strong>the</strong> router c<strong>on</strong>figurati<strong>on</strong>.<br />

Figure 14. represents a block diagram of <strong>the</strong> <strong>QoS</strong> Broker comp<strong>on</strong>ents <str<strong>on</strong>g>and</str<strong>on</strong>g> internal communicati<strong>on</strong> flows.<br />

AAACInterf<br />

QBroker<br />

FHOInterf<br />

NMSInterf<br />

NetworkDB<br />

User<br />

Profile<br />

Data<br />

QBrokerEngine<br />

NetStatus<br />

RGWClient<br />

NetProbe<br />

WebGUI<br />

RouterInterface<br />

Figure 14: <strong>QoS</strong> Broker comp<strong>on</strong>ents<br />

The subsequent secti<strong>on</strong>s lists all <strong>the</strong> comp<strong>on</strong>ents with a brief descripti<strong>on</strong> for each of <strong>the</strong>m.<br />

CEC Deliverable Number D0202 20 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

3.3.1 WebGUI<br />

WebGUI is <strong>the</strong> module that enables <strong>the</strong> c<strong>on</strong>tact with <strong>the</strong> human operator. It was developed with<br />

two proposes:<br />

• it enables <strong>the</strong> <strong>QoS</strong>Broker c<strong>on</strong>figurati<strong>on</strong> with <strong>the</strong> data editi<strong>on</strong> in <strong>the</strong> NetworkDB database;<br />

• it shows <strong>the</strong> network use status, showing <strong>the</strong> active reservati<strong>on</strong>s <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> profiles authorised;<br />

3.3.2 NetProbe<br />

NetProbe is <strong>the</strong> entity that m<strong>on</strong>itors network status. The collected informati<strong>on</strong> is inserted in a<br />

database named NetStatus. This informati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> informati<strong>on</strong> given by <strong>the</strong> NMSInterface represent <strong>the</strong><br />

network status, at every instant. QBrokerEngine will user this informati<strong>on</strong> to decide if it should or not<br />

allow a new access to <strong>the</strong> network resources.<br />

3.3.3 QBrokerEngine<br />

QBrokerEngine is a process that manages several threads, <strong>on</strong>e for each interface. The threads wait for<br />

requests from <strong>the</strong> outside world. We will have:<br />

• AAACAttendant – AAACAttendant will receive <str<strong>on</strong>g>and</str<strong>on</strong>g> answer <strong>the</strong> AAAC requests<br />

• InterBrokerAttendant – InterBrokerAttendant receives external FHO data needed by<br />

n<strong>QoS</strong>Broker to c<strong>on</strong>figure nAR.<br />

• RouterAttendant – RouterAttendant will receive router requests that after processing <strong>the</strong><br />

<strong>QoS</strong>Broker answers. Those requests can to be summarized as follows:<br />

o Data flow authorizing requests: AR requests <strong>QoS</strong>Broker to accept some data flow, <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

<strong>QoS</strong>Broker after analysing network resource state answers accepting or rejecting that<br />

flow;<br />

o FHO requests: oAR c<strong>on</strong>tacts <strong>QoS</strong>Broker requesting <strong>the</strong> FHO process sending oCoA,<br />

nCoA <str<strong>on</strong>g>and</str<strong>on</strong>g> nAR addresses. <strong>QoS</strong>Broker looks for nAR address<br />

QBrokerEngine is resp<strong>on</strong>sible to launch, stop <str<strong>on</strong>g>and</str<strong>on</strong>g> manage those threads.<br />

3.3.4 <strong>QoS</strong> Broker Interfaces<br />

<strong>QoS</strong> Broker has several interfaces, <strong>on</strong>e towards each Moby Dick architecture comp<strong>on</strong>ents. Figure 15.<br />

shows this important aspect of <strong>the</strong> architecture. The interfaces are <strong>the</strong>n characterised in <strong>the</strong> following<br />

secti<strong>on</strong>s.<br />

AAACInterf<br />

RGWClient<br />

<strong>QoS</strong>Broker<br />

NMSInterf<br />

RouterInterface<br />

WebServer<br />

BrokerInterface<br />

Attendant<br />

BrokerClient<br />

Figure 15: <strong>QoS</strong> Broker interfaces<br />

3.3.4.1 BrokerInterface<br />

BrokerInterface is <strong>the</strong> module that interfaces with <strong>the</strong> neighbouring Brokers. This interface is used to<br />

exchange external FHO informati<strong>on</strong> between oQosBroker <str<strong>on</strong>g>and</str<strong>on</strong>g> n<strong>QoS</strong>Broker. As so<strong>on</strong> as o<strong>QoS</strong>Broker<br />

realises that nAR bel<strong>on</strong>gs to a domain of ano<strong>the</strong>r <strong>QoS</strong>Broker it collects NVUP informati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

reservati<strong>on</strong> informati<strong>on</strong> related to <strong>the</strong> oCoA <str<strong>on</strong>g>and</str<strong>on</strong>g> sends it to <strong>the</strong> n<strong>QoS</strong>Broker. The communicati<strong>on</strong> between<br />

<strong>QoS</strong>Broker is made using COPS protocol <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> COPS API (COPSApi) is developed to enable<br />

communicati<strong>on</strong>s between <strong>the</strong> AAAC, <strong>the</strong> AR <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> <strong>QoS</strong>Broker.<br />

3.3.4.2 NMSInterface<br />

This is <strong>the</strong> interface with NMS (Network Management System) entity that allows <strong>the</strong> NMS entity to<br />

define <strong>the</strong> network resources that can be used by this broker. The interface should also allow access to<br />

CEC Deliverable Number D0202 21 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

policy, alarm processing <str<strong>on</strong>g>and</str<strong>on</strong>g> service translati<strong>on</strong> functi<strong>on</strong>s. This interface should also to be c<strong>on</strong>nected to<br />

<strong>the</strong> database that keeps <strong>the</strong> network informati<strong>on</strong>, named NetStatus. It will receive a message<br />

Send<strong>QoS</strong>BC<strong>on</strong>figData with parameter QOSB_CONFIGDATA.<br />

3.3.4.3 AAACInterface<br />

AAACInterface interfaces with <strong>the</strong> AAAC server. It defines <strong>the</strong> service <strong>QoS</strong> parameters at <strong>QoS</strong>Broker<br />

start-up time, <str<strong>on</strong>g>and</str<strong>on</strong>g> dumps NVUP informati<strong>on</strong> to <strong>QoS</strong>Broker when any user registers in AAAC system.<br />

Once <strong>the</strong> AAAC server starts running it c<strong>on</strong>nects with <strong>the</strong> <strong>QoS</strong>Broker <str<strong>on</strong>g>and</str<strong>on</strong>g> sends a message defining<br />

<strong>QoS</strong> parameters used in <strong>the</strong> available services <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> corresp<strong>on</strong>ding DSCP codes. Those parameters are<br />

used in <strong>the</strong> network <strong>QoS</strong> management that <strong>QoS</strong>Broker does during its operati<strong>on</strong>.<br />

After user registrati<strong>on</strong> in <strong>the</strong> AAAC system, <strong>the</strong> AAAC server dumps NVUP informati<strong>on</strong> into <strong>the</strong><br />

<strong>QoS</strong>Broker defining <strong>the</strong> list of services that user will be able to use. The NVUP informati<strong>on</strong> c<strong>on</strong>tains<br />

informati<strong>on</strong> such as CoA, authorisati<strong>on</strong> timeout, <str<strong>on</strong>g>and</str<strong>on</strong>g> a list of services described by a source address,<br />

destinati<strong>on</strong> address <str<strong>on</strong>g>and</str<strong>on</strong>g> a DSCP. It is also possible to have different timers to different services, because<br />

each service may have its own timeout.<br />

3.3.4.4 RouterInterface<br />

RouterInterface is <strong>the</strong> entity that will interface <strong>the</strong> routers. It will have two modes of operati<strong>on</strong>:<br />

• receives <strong>the</strong> router request reservati<strong>on</strong>s: when a host starts sending a packet flow, <strong>the</strong><br />

Access Router (AR) will send a request to <strong>the</strong> <strong>QoS</strong>Broker through COPSDriver making a<br />

resource reservati<strong>on</strong>. <strong>QoS</strong>Broker analyses network usage state <str<strong>on</strong>g>and</str<strong>on</strong>g> sends an answer<br />

accepting <strong>the</strong> new flow, or denying it.<br />

• sends router c<strong>on</strong>figurati<strong>on</strong> informati<strong>on</strong>: during AR startup, <str<strong>on</strong>g>and</str<strong>on</strong>g> when AR requests for a<br />

c<strong>on</strong>figurati<strong>on</strong>, <strong>the</strong> <strong>QoS</strong>Broker sends a set of parameters c<strong>on</strong>figuring <strong>the</strong> queues of <strong>the</strong> AR.<br />

3.3.4.5 NMSInterface<br />

NMSInterface is <strong>the</strong> interface through which <strong>the</strong> <strong>QoS</strong>Broker learns <strong>the</strong> resources of <strong>the</strong> core network that<br />

are available for its own use.<br />

The definiti<strong>on</strong> of those resources will be made by a data structure like:<br />

UpstreamResoucesData<br />

UpstreamBW<br />

UpstreamDelay<br />

This data will be sent to <strong>the</strong> QosBroker by a message like<br />

Send<strong>QoS</strong>C<strong>on</strong>figData(UpstreamResoucesData);<br />

3.3.4.6 RGWClient<br />

This interface is used to open a radio barrier in <strong>the</strong> radio gateway.<br />

3.3.4.7 Data format for communicati<strong>on</strong>s between Radio Gateway <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong>Broker<br />

qosb_radio_bearer_info_t: This structure defines a radio bearer informati<strong>on</strong>. It c<strong>on</strong>veys <strong>the</strong> following<br />

informati<strong>on</strong>:<br />

- dscp;<br />

- radio_<strong>QoS</strong>_class;<br />

- status;<br />

radio_access_allocati<strong>on</strong>_msg_t: This structure defines a message <strong>QoS</strong>Broker sends to Radio Gateway<br />

- type: Only <strong>on</strong>e type of message, but keep it for compatibility;<br />

- nb_entries: number of valid entries in info array;<br />

- Home_Addr: home address of <strong>the</strong> MT attached to radio gateway;<br />

- qosb_radio_bearer_info_t: an array of radio barer informati<strong>on</strong> structures;<br />

CEC Deliverable Number D0202 22 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

3.3.4.8 Messages exchanged between Radio Gateway <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong>Broker<br />

OpenChanel: <strong>QoS</strong>Broker sends a message to Radio Gateway opening a radio barer.<br />

3.3.5 <str<strong>on</strong>g>Implementati<strong>on</strong></str<strong>on</strong>g> details of selected interfaces<br />

Now we will describe <strong>the</strong> implementati<strong>on</strong> of <strong>the</strong> interfaces <str<strong>on</strong>g>and</str<strong>on</strong>g> databases. We start with <strong>the</strong><br />

interface descripti<strong>on</strong>. In later secti<strong>on</strong>s we analyse <strong>the</strong> databases used by <strong>the</strong> broker <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>ir structure <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

define <strong>the</strong> data that is used in messages exchanged over <strong>the</strong> interfaces.<br />

3.3.5.1 AAACInterface<br />

AAACInterface interfaces with <strong>the</strong> AAAC server.<br />

3.3.5.1.1 Data format interchanged between <strong>QoS</strong>Broker <str<strong>on</strong>g>and</str<strong>on</strong>g> AAAC<br />

NVUP (Network View of User Profile). It represents <strong>the</strong> subset of <strong>the</strong> user profile that <strong>the</strong> network needs<br />

to know. The subset includes:<br />

-User ID / NAI;<br />

-Home Domain / Home service provider;<br />

-Source address;<br />

-N services: number of services a user subscribes;<br />

-Array of N elements with:<br />

-Destinati<strong>on</strong> address;<br />

-Authorisati<strong>on</strong> timeout;<br />

-DSCP signalling code;<br />

DSCP signalling code can be very useful in a situati<strong>on</strong> of a foreign domain access with different <strong>QoS</strong><br />

signalling. For each user a set of N services that can be used by him is defined. Each service has an<br />

authorisati<strong>on</strong> timeout, a destinati<strong>on</strong> address, a <strong>QoS</strong> Profile describing <strong>QoS</strong> parameters for this service, <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

a DSCP signalling code. Translati<strong>on</strong> of user profiles in different domains is a task of AAAC.<br />

<strong>QoS</strong>Profile – QosProfile represents <strong>the</strong> <strong>QoS</strong> c<strong>on</strong>diti<strong>on</strong>s of some profile. The profile defines several<br />

parameters:<br />

-DSCP;<br />

-B<str<strong>on</strong>g>and</str<strong>on</strong>g>width;<br />

-Priority;<br />

-Minimum Delay;<br />

3.3.5.1.2 Messages exchanged between AAAC <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong>Broker<br />

Several messages are used in this communicati<strong>on</strong>s at different time instants:<br />

1. Before Operati<strong>on</strong>: Send<strong>QoS</strong>Profile(<strong>QoS</strong>Profile) – Used by <strong>the</strong> AAAC to define to <strong>the</strong><br />

<strong>QoS</strong>Broker <strong>the</strong> <strong>QoS</strong> Profiles, <str<strong>on</strong>g>and</str<strong>on</strong>g> its <strong>QoS</strong> parameters;<br />

2. Registrati<strong>on</strong> time: AuthorizeProfile(NVUP) - AAAC signals <strong>QoS</strong>Broker to allow resource<br />

usage (for a user). Resources are not yet reserved, this is d<strong>on</strong>e at sessi<strong>on</strong> setup time;<br />

3. Deregistrati<strong>on</strong> time: DeAuthorizeProfile(NVUP) – AAAC signals to <strong>QoS</strong>Broker to release<br />

resources used by that user;<br />

The communicati<strong>on</strong> between <strong>the</strong> AAAC <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> <strong>QoS</strong>Broker is carried <strong>on</strong> using a COPSApi that<br />

implement a COPS-like protocol as messages aren't answered by <strong>the</strong> <strong>QoS</strong>Broker. The reas<strong>on</strong> is that it was<br />

decided for scalability reas<strong>on</strong>s that <strong>the</strong> AAAC server shouldn't wait for <strong>the</strong> <strong>QoS</strong>Broker answer each time<br />

it sends a message.<br />

3.3.5.2 RouterInterface<br />

As stated before RouterInterface is <strong>the</strong> interface to o<strong>the</strong>r routers. Figure 16. shows its internals.<br />

CEC Deliverable Number D0202 23 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

QBroker<br />

QBrokerEngine<br />

NetProbe<br />

VirtualRouter<br />

CLIDriver<br />

COPSDriver<br />

Linux Router<br />

Figure 16: RouterInterface internals<br />

The elements in Figure 16. include:<br />

• VirtualRouter: It chooses <strong>the</strong> driver that should to be used to communicate with some<br />

specific router;<br />

• CLIDriver: CLIDriver is <strong>the</strong> driver used to communicate with routers that we should<br />

communicate by Comm<str<strong>on</strong>g>and</str<strong>on</strong>g> Line Interface;<br />

• COPSDriver: COPSDriver is <strong>the</strong> driver used to communicate through COPS.<br />

The incoming messages from <strong>the</strong> routers that request some network resource are mapped from <strong>the</strong><br />

COPSDriver directly to <strong>the</strong> QBrokerEngine. The outgoing messages, from <strong>the</strong> QBrokerEngine to <strong>the</strong><br />

routers, messages to make some c<strong>on</strong>figurati<strong>on</strong>, or simply to analyse <strong>the</strong> network status are passed to <strong>the</strong><br />

VirtualRouter. Next we describe in more detail, <strong>the</strong>se comp<strong>on</strong>ents <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>ir implementati<strong>on</strong>.<br />

3.3.5.3 VirtualRouter<br />

VirtualRouter which is shown in Figure 17. is a kind of virtual driver that will interface <strong>the</strong> Router<br />

Interface <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> router drivers that broker use to c<strong>on</strong>figure <strong>the</strong> routers. It has a database that keeps<br />

informati<strong>on</strong> about <strong>the</strong> routers, its vendors, its models, <str<strong>on</strong>g>and</str<strong>on</strong>g> its communicati<strong>on</strong> format.<br />

Router Interface<br />

VirtualRouter<br />

Engine<br />

Router<br />

List<br />

Database<br />

CLIDriver<br />

COPSDriver<br />

Cisco<br />

Router<br />

Linux Router<br />

Figure 17: Virtual Router<br />

When a virtual router receives a message that should be sent to a router it should verify routers<br />

communicati<strong>on</strong> format <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> use <strong>the</strong> correct driver to send that message. Like that we are able to have<br />

different protocols to be used to “talk” with different routers. Such a architecture was chosen because:<br />

• The program uses <strong>the</strong> drivers as an abstracti<strong>on</strong> to communicate with all <strong>the</strong> routers without<br />

taking care about specific router communicati<strong>on</strong> details, making development easier;<br />

• Makes <strong>the</strong> program evoluti<strong>on</strong> easier, when a new router arise <strong>the</strong> <strong>on</strong>ly thing needed is to add a<br />

new entry in <strong>the</strong> database <str<strong>on</strong>g>and</str<strong>on</strong>g> add <strong>the</strong> specific router comm<str<strong>on</strong>g>and</str<strong>on</strong>g>s in <strong>the</strong> database.<br />

3.3.5.4 CLIDriver<br />

CLIDriver is <strong>the</strong> driver that will communicate with <strong>the</strong> routers using Comm<str<strong>on</strong>g>and</str<strong>on</strong>g> Line Interface (Figure<br />

18). It will receive requests from <strong>the</strong> VirtualRouter <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>n forward <strong>the</strong>m to <strong>the</strong> routers through a set of<br />

instructi<strong>on</strong>s that are present in <strong>the</strong> database.<br />

CEC Deliverable Number D0202 24 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Router Interface<br />

VirtualRouter<br />

Engine<br />

Router<br />

List<br />

Database<br />

CLIDriver<br />

Engine<br />

CLI<br />

Comm<str<strong>on</strong>g>and</str<strong>on</strong>g><br />

Cisco<br />

Router<br />

Router<br />

When a Virtual Router receives a message for a CLI router, it sends this message to this driver.<br />

CLIDriver checks in this database how to format <strong>the</strong> message in routers CLI comm<str<strong>on</strong>g>and</str<strong>on</strong>g>s. Then it will send<br />

<strong>the</strong> list of comm<str<strong>on</strong>g>and</str<strong>on</strong>g>s <strong>on</strong>e by <strong>on</strong>e to <strong>the</strong> router, making <strong>the</strong> message c<strong>on</strong>figurati<strong>on</strong>.<br />

3.3.5.5 COPSDriver<br />

COPS protocol was specially designed to exchange network policy informati<strong>on</strong> between <strong>the</strong> policy<br />

decisi<strong>on</strong> point (<strong>QoS</strong> Broker) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> policy enforcement points (ARs) – Figure 19. When <strong>the</strong> router starts<br />

receiving a set of packets from a user with some <strong>QoS</strong>Profile code, it will ask <strong>the</strong> <strong>QoS</strong>Broker for resources<br />

reservati<strong>on</strong> for that flow. After analysing <strong>the</strong> network c<strong>on</strong>diti<strong>on</strong>s <strong>the</strong> <strong>QoS</strong>Broker will send an answer that<br />

will be applied by <strong>the</strong> router. In order to supply <strong>the</strong> <strong>QoS</strong>Broker with all needed informati<strong>on</strong> to <strong>the</strong> router<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> <strong>QoS</strong>Broker should change some messages with some data.<br />

User<br />

Profile<br />

Data<br />

Figure 18: CLIDriver<br />

QBroker<br />

QBrokerEngine<br />

NetStatus<br />

RouterInterface<br />

COPSDriver<br />

Linux Router<br />

Figure 19: COPSDriver as a PDP interface<br />

COPS communicati<strong>on</strong> between AR <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong>Broker is made by <strong>the</strong> COPSApi. The Api implements a<br />

COPS-RSVP-like protocol, with <strong>the</strong> excepti<strong>on</strong> in <strong>the</strong> FHO message that is <strong>the</strong> <strong>on</strong>ly unsolicited message<br />

that <strong>the</strong> Api supports. This interface uses <strong>the</strong> exchange of Keep-Alive messages in order to to announce<br />

its running state to <strong>the</strong> network elements that <strong>the</strong>y are c<strong>on</strong>nected.<br />

3.3.5.5.1 Data format interchanged between AR <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong>Broker<br />

BehaviourData: It describes <strong>the</strong> <strong>QoS</strong>Manager queues parameters. This structure c<strong>on</strong>tains numerous<br />

parameters:<br />

- dscp_b;<br />

- dest_addr;<br />

- queue_type;<br />

CEC Deliverable Number D0202 25 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

- behaviuor;<br />

- borrow_flag;<br />

- min_gred_queue;<br />

- max_gred_queue;<br />

- prob_gred_queue;<br />

At a start-up time of a <strong>QoS</strong>Manager it requests <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong> from <strong>QoS</strong>Broker. <strong>QoS</strong>Broker collects an<br />

array of BehaviourData from describing <strong>QoS</strong>Manager queues informati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> sends <strong>the</strong>m to<br />

<strong>QoS</strong>Manager.<br />

RD (Resource Descripti<strong>on</strong>). It describes <strong>the</strong> resource that is being requested to <strong>the</strong> AR by a host. The<br />

descripti<strong>on</strong> c<strong>on</strong>tains:<br />

-Source address;<br />

-Destinati<strong>on</strong> address;<br />

-DSCP signalling code;<br />

FHOData(Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>over data). It describes <strong>the</strong> FHO process being requested to <strong>the</strong> <strong>QoS</strong>Broker. This<br />

structures c<strong>on</strong>tains:<br />

- oCoA ( <strong>the</strong> old CoA): <strong>the</strong> address used by a MN that is making a FHO;<br />

- nCoA ( <strong>the</strong> new CoA): <strong>the</strong> address that will be used by <strong>the</strong> MN after <strong>the</strong> FHO process;<br />

- nAR ( new AR): <strong>the</strong> address of <strong>the</strong> router that will c<strong>on</strong>nect <strong>the</strong> MN after <strong>the</strong> FHO.<br />

FHOServReserv (Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>over Service Reservati<strong>on</strong>): is <strong>the</strong> fast h<str<strong>on</strong>g>and</str<strong>on</strong>g>over registered service<br />

descripti<strong>on</strong> sent by <strong>the</strong> <strong>QoS</strong>Broker to <strong>the</strong> nAR after a FHO decisi<strong>on</strong> was taken. This data structures<br />

c<strong>on</strong>tains:<br />

- SourceAddress (Source address): is <strong>the</strong> source address of <strong>the</strong> registered service for <strong>the</strong> MN;<br />

- DestAddress (Destinati<strong>on</strong> address): is <strong>the</strong> destinati<strong>on</strong> address of <strong>the</strong> service registered to that<br />

MN;<br />

- DSCP: is <strong>the</strong> DSCP of <strong>the</strong> registered service;<br />

- PolicyBW (Policy B<str<strong>on</strong>g>and</str<strong>on</strong>g>width): are <strong>the</strong> b<str<strong>on</strong>g>and</str<strong>on</strong>g>width-related values sent to nAR ; used for <strong>the</strong> data<br />

rate parameters of <strong>the</strong> queue that is created to keep this service packets;<br />

- PolicyBurst (Policy Burst): is <strong>the</strong> burst rate value that defines <strong>the</strong> burst rate of <strong>the</strong> queue that<br />

AR will create to keep this service packets;<br />

A FHO answer is sent from <strong>QoS</strong>Broker to <strong>the</strong> nAR having a FHOServReserv for each registered service<br />

that <strong>the</strong> MN owns in <strong>the</strong> <strong>QoS</strong>Broker. For a MN having N registered services in <strong>the</strong> <strong>QoS</strong>Broker <strong>the</strong><br />

message has an array of N FHOServReserv structures defining those services.<br />

3.3.5.6 Messages exchanged between AR <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong>Broker<br />

During AR <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong>Broker operati<strong>on</strong> several messages are exchanged between <strong>the</strong> two:<br />

- C<strong>on</strong>figRequest: is a c<strong>on</strong>figurati<strong>on</strong> request made by AR in order to know c<strong>on</strong>figurati<strong>on</strong> it<br />

should give to its interface queues. This message is sent at AR start-up <str<strong>on</strong>g>and</str<strong>on</strong>g> after <strong>QoS</strong>Broker<br />

shows its c<strong>on</strong>figurati<strong>on</strong> intenti<strong>on</strong> flag. Each time <strong>QoS</strong>Broker detects <strong>the</strong> need of rec<strong>on</strong>figuring<br />

AR it will wait for <strong>the</strong> next AR requests <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>n <strong>the</strong> <strong>QoS</strong>Broker will set <strong>the</strong> rec<strong>on</strong>figurati<strong>on</strong> flag<br />

in <strong>the</strong> answer it send to AR. After receiving <strong>the</strong> message with this flag AR makes a c<strong>on</strong>figurati<strong>on</strong><br />

request to <strong>QoS</strong>Broker.<br />

- C<strong>on</strong>figDec: is <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong> message sent by <strong>the</strong> <strong>QoS</strong>Broker to <strong>the</strong> AR describing <strong>the</strong><br />

interface queues parameters. This message sends data<br />

- ResourceRequest: <strong>the</strong> message sent by <strong>QoS</strong>Manager to <strong>QoS</strong>Broker requesting for accepting a<br />

flow described by <strong>the</strong> RG structure. <strong>QoS</strong>Broker, accepting or denying that flow acceptance<br />

answers this message.<br />

- ReleaseResource: <strong>the</strong> message send by <strong>QoS</strong>Manager requesting <strong>QoS</strong>Broker to deallocate those<br />

resources described in <strong>the</strong> RG structure.<br />

- FHORequest: <strong>the</strong> FHO request sent by oAR to <strong>QoS</strong>Broker that defines <strong>the</strong> oCoA, <strong>the</strong> nCoA<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> nAR. <strong>QoS</strong>Broker analyses this request <str<strong>on</strong>g>and</str<strong>on</strong>g> send an answer to oAR.<br />

CEC Deliverable Number D0202 26 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

- FHODecisi<strong>on</strong>: <strong>the</strong> FHO decisi<strong>on</strong> sent form <strong>QoS</strong>Broker to oAR. After analysing <strong>the</strong> FHO<br />

request <str<strong>on</strong>g>and</str<strong>on</strong>g> network resource availability <strong>QoS</strong>Broker sends an answer to nAR.<br />

3.3.6 Interface summary<br />

The following table summarises all <strong>the</strong> interface informati<strong>on</strong>, messages, data exchanged <str<strong>on</strong>g>and</str<strong>on</strong>g> message<br />

timing:<br />

Interface Timing Message Send data<br />

AAAC<br />

<strong>QoS</strong>Broker Send<strong>QoS</strong>Profile<br />

Services Descripti<strong>on</strong><br />

start-up<br />

User<br />

AuthoriseProfile<br />

NVUP<br />

registrati<strong>on</strong> time<br />

User<br />

registrati<strong>on</strong><br />

removal<br />

DeAutorizeProfile<br />

AR<br />

Before run-time C<strong>on</strong>figRequest<br />

RouterC<strong>on</strong>fig<br />

ChangeC<strong>on</strong>fig<br />

Run-time ResourceRequest<br />

Resource<br />

ResourceRelease<br />

In a h<str<strong>on</strong>g>and</str<strong>on</strong>g>over H<str<strong>on</strong>g>and</str<strong>on</strong>g>overRequest<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>overResource<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>overDec<br />

NMS Any time Send<strong>QoS</strong>C<strong>on</strong>fig <strong>QoS</strong>ResourceData<br />

<strong>QoS</strong>BrokerInterface External RequestH<str<strong>on</strong>g>and</str<strong>on</strong>g>over<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>overResource<br />

Hanover<br />

process<br />

Radio Gateway In a new Radio<br />

Gateway flow<br />

OpenChannel<br />

radio_access_allocati<strong>on</strong>_msg_t<br />

3.3.7 <str<strong>on</strong>g>Implementati<strong>on</strong></str<strong>on</strong>g> of databases<br />

<strong>QoS</strong> Broker has several databases. Depending <strong>on</strong> <strong>the</strong>ir size <str<strong>on</strong>g>and</str<strong>on</strong>g> frequency of queries <strong>the</strong>se<br />

databases are stored in memory or in a file.<br />

3.3.7.1 NetworkDB<br />

NetworkDBs is <strong>the</strong> database that keeps <strong>the</strong> informati<strong>on</strong> about <strong>the</strong> network topology. It keeps informati<strong>on</strong><br />

about each router that <strong>the</strong> broker manages, its load informati<strong>on</strong>, <strong>the</strong> queues defined to each of its<br />

interfaces, <strong>the</strong> scheduling algorithm applied to each interface, <strong>the</strong> occupancy of each queue <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

resources that <strong>the</strong> NMS assigned in this broker. The database has six tables:<br />

• Router. Router table keeps informati<strong>on</strong> such as router memory, processing capacity, router<br />

load, <str<strong>on</strong>g>and</str<strong>on</strong>g> its state;<br />

• Interface. Represents <strong>the</strong> router interfaces. It keeps informati<strong>on</strong> such as Interface address,<br />

<strong>the</strong> scheduling discipline used by <strong>the</strong> interface, <str<strong>on</strong>g>and</str<strong>on</strong>g> interface state;<br />

• Queue. Represents <strong>the</strong> interface queues. It keeps <strong>the</strong> queue memory, queue occupancy,<br />

queue priority;<br />

• QueueC<strong>on</strong>f: Defines <strong>the</strong> parameters of <strong>the</strong> AR queues;<br />

• RadioGW: Lists <strong>the</strong> radio gateways that are part of a <strong>QoS</strong>Broker domain. It stores <strong>the</strong> radio<br />

network address, as well as its network address <str<strong>on</strong>g>and</str<strong>on</strong>g> network mask;<br />

• NetService: It describes <strong>the</strong> <strong>QoS</strong>Broker network services, as well as <strong>the</strong> mapping existing<br />

between services <str<strong>on</strong>g>and</str<strong>on</strong>g> radio classes;<br />

CEC Deliverable Number D0202 27 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

PK,FK1,FK2<br />

PK<br />

QueueC<strong>on</strong>f<br />

DSCP<br />

InterfaceBW<br />

B<str<strong>on</strong>g>and</str<strong>on</strong>g>width<br />

AgregNumb<br />

Borrow<br />

MinGRED<br />

MaxGRED<br />

DropNumb<br />

LimitGRED<br />

QueueID<br />

PK,FK1<br />

FK2<br />

Interface<br />

InterfaceID<br />

Address<br />

Active<br />

IsCoreInterface<br />

TotalB<str<strong>on</strong>g>and</str<strong>on</strong>g>width<br />

RefDisciplineID<br />

RefRouterID<br />

QueueID<br />

PK<br />

FK1<br />

Router<br />

RouterID<br />

Active<br />

AvailBW<br />

Login<br />

Pass<br />

EnablePass<br />

Name<br />

RefBrokerID<br />

InterfaceID<br />

Broker<br />

PK<br />

Queue<br />

QueueID<br />

DSCP<br />

DropNumber<br />

SentNumber<br />

YellowMarked<br />

RedMArked<br />

Occupati<strong>on</strong><br />

OverLimits<br />

BurtSize<br />

Rate<br />

BufferSize<br />

YellowThreshold<br />

RedThreshold<br />

RefInterfaceID<br />

NetService<br />

PK DSCP<br />

Name<br />

RadioClass<br />

FK1 QueueID<br />

PK,FK1,FK2<br />

PK<br />

RadioGW<br />

BrokerID<br />

Address<br />

Active<br />

RadioGWID<br />

CoreInterf<br />

NetInterf<br />

RefInterfaceID<br />

RefBrokerID<br />

Figure 20: NetStatus database structure<br />

3.3.7.2 NetStatus<br />

NetStatus database (Figures 20 <str<strong>on</strong>g>and</str<strong>on</strong>g> 22) keeps <strong>the</strong> informati<strong>on</strong> about <strong>the</strong> network state including<br />

informati<strong>on</strong> about network usage <str<strong>on</strong>g>and</str<strong>on</strong>g> authorised user profiles in this network. This database has <strong>the</strong><br />

following tables:<br />

- NVUP: Keeps <strong>the</strong> informati<strong>on</strong> about <strong>the</strong> NVUP of <strong>the</strong> registered user;<br />

- NetService: Has <strong>the</strong> authorised service list of <strong>the</strong> registered users;<br />

- Reservati<strong>on</strong>s: Keeps a list of network services in use by a network user;<br />

NVUP<br />

NetService<br />

Reservati<strong>on</strong>s<br />

PK<br />

NVUPID<br />

PK<br />

ServiceID<br />

PK<br />

ReservID<br />

NAI<br />

CoA<br />

Timeout<br />

FK1<br />

SourceAddress<br />

DestAddress<br />

DSCP<br />

Timeout<br />

RefNVUPID<br />

SourceAddress<br />

DestAddress<br />

DSCP<br />

Timeout<br />

RefRouterID<br />

Figure 22: NetStatus database<br />

3.4 The DSCP marking software<br />

The DSCP marking software (DMS) has been developed in two steps. A first versi<strong>on</strong> of <strong>the</strong> software,<br />

tested <str<strong>on</strong>g>and</str<strong>on</strong>g> integrated in <strong>the</strong> Moby Dick test bed in Madrid, in October 2002, provided <strong>on</strong>ly a very limited<br />

CEC Deliverable Number D0202 28 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

set of filtering capabilities, based <strong>on</strong> <strong>the</strong> IPv6 main header <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> transport headers (TCP <str<strong>on</strong>g>and</str<strong>on</strong>g> UDP)<br />

fields.<br />

The sec<strong>on</strong>d versi<strong>on</strong> of <strong>the</strong> DMS, provided <str<strong>on</strong>g>and</str<strong>on</strong>g> integrated in Nice at <strong>the</strong> end of March 2003, provided<br />

additi<strong>on</strong>al filtering capabilities, including <strong>the</strong> possibility to filter different IPv6 extensi<strong>on</strong> headers fields,<br />

<strong>the</strong> ICMPv6 header fields <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> inner-header DSCP of tunneled packets. These new capabilities allow<br />

<strong>the</strong> user, or <strong>the</strong> MT administrator, to define filters based <strong>on</strong> a large panel of fields in <strong>the</strong> outgoing packets.<br />

They also offer <strong>the</strong> possibility to clearly distinguish signalling packets from data packets. The importance<br />

of this last aspect of <strong>the</strong> DMS resides in <strong>the</strong> fact <strong>the</strong> signalling traffic has high priority in <strong>the</strong> network. The<br />

signaling CoS is often not charged by <strong>the</strong> network operator, even if <strong>the</strong> amount of signalling traffic each<br />

MT is authorised to send through <strong>the</strong> network is limited. Ano<strong>the</strong>r enhancement of this sec<strong>on</strong>d versi<strong>on</strong> was<br />

to allow each MT to load from <strong>the</strong> network <strong>the</strong> DSCP values in use in each domain.<br />

In this secti<strong>on</strong>, we <strong>on</strong>ly describe <strong>the</strong> final specificati<strong>on</strong>s of <strong>the</strong> DMS.<br />

3.4.1 Operati<strong>on</strong><br />

When a new packet is ready to be transmitted to <strong>the</strong> layer two, <strong>the</strong> DMS inspects its header <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>sults a<br />

DSCP Matching Table. This table c<strong>on</strong>tains a set of filters to apply <strong>on</strong> <strong>the</strong> informati<strong>on</strong> extracted from <strong>the</strong><br />

header, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> values of <strong>the</strong> associated DSCPs. Then, if <strong>on</strong>e of <strong>the</strong> filters matches perfectly with this<br />

informati<strong>on</strong>, <strong>the</strong> packet is marked with <strong>the</strong> value of <strong>the</strong> DSCP associated with this filter.<br />

3.4.2 DMS Architecture<br />

Kernel Space<br />

User Space<br />

DSCP Marking<br />

Functi<strong>on</strong> (IPv6)<br />

Table update<br />

Module<br />

Service<br />

Table<br />

DSCP<br />

Matching<br />

Table<br />

Filters<br />

Db<br />

Rules1.txt<br />

Rules2.txt<br />

Rules3.txt<br />

Figure 23: DMS Comp<strong>on</strong>ents<br />

The DMS c<strong>on</strong>tains five comp<strong>on</strong>ents, as in Figure 23:<br />

• a DSCP Matching Table (DMT): this table c<strong>on</strong>tains <strong>the</strong> definiti<strong>on</strong> of every filter <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

DSCP associated with it in <strong>the</strong> Linux kernel space,<br />

• a DSCP Marking Functi<strong>on</strong> (DMF): this is <strong>the</strong> DMS engine, which c<strong>on</strong>sults <strong>the</strong> fields in <strong>the</strong><br />

different headers of each packet, compares it with <strong>the</strong> filters in <strong>the</strong> DMT, <str<strong>on</strong>g>and</str<strong>on</strong>g> decides to<br />

mark or not <strong>the</strong> packet with a new DSCP; it is located in <strong>the</strong> Linux kernel (in <strong>the</strong> IPv6 code),<br />

• a Filters Database (FD): this file (or set of files) c<strong>on</strong>tains <strong>the</strong> definiti<strong>on</strong>s of all <strong>the</strong> filters, in<br />

<strong>the</strong> user space,<br />

• a Table Update Module (TUM): this is a Linux module in charge of updating <strong>the</strong> DSCP<br />

Matching Table with <strong>the</strong> data stored in <strong>the</strong> Filters Database,<br />

• a Service Table (ST): this table, <strong>on</strong>ly used by <strong>the</strong> TUM, associates a DSCP with each<br />

service.<br />

3.4.3 DSCP Matching<br />

The packet marking process is based <strong>on</strong> <strong>the</strong> search of a table c<strong>on</strong>taining all <strong>the</strong> filters definiti<strong>on</strong>s<br />

whenever a packet is ready to be transmitted. In this secti<strong>on</strong>, we describe how <strong>the</strong>se filters are introduced<br />

by a user, <str<strong>on</strong>g>and</str<strong>on</strong>g> how <strong>the</strong> DMT is built <str<strong>on</strong>g>and</str<strong>on</strong>g> updated.<br />

3.4.3.1 Packet filtering<br />

The descripti<strong>on</strong> of a filter is as follows:<br />

CEC Deliverable Number D0202 29 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Filter<br />

Descripti<strong>on</strong><br />

TCPDestPort<br />

IP6SrcAddr<br />

CoS<br />

10<br />

FTPFilter<br />

21<br />

FEDC:BA98:7654:3210:FEDC:BA98:7654:3210<br />

S1<br />

The complete descripti<strong>on</strong>s of <strong>the</strong> filters are stored in <strong>on</strong>e or several files (<strong>the</strong> FD). Each file is loaded in<br />

<strong>the</strong> DMT with help of <strong>the</strong> TUM. Then, when a packet is ready to be delivered to <strong>the</strong> lower layer, <strong>the</strong> DMF<br />

c<strong>on</strong>sults <strong>the</strong> DMT, <str<strong>on</strong>g>and</str<strong>on</strong>g> marks <strong>the</strong> packet with <strong>the</strong> DSCP associated with <strong>the</strong> first filter that matches with<br />

<strong>the</strong> informati<strong>on</strong> of its header(s).<br />

A filter c<strong>on</strong>tains:<br />

• An identifier (<strong>the</strong> ‘Descripti<strong>on</strong>’ field), which also represents its priority. Thus, if two filters<br />

match, <strong>on</strong>ly <strong>the</strong> first <strong>on</strong>e, i.e. <strong>the</strong> <strong>on</strong>e with <strong>the</strong> lowest identifier, is c<strong>on</strong>sidered.<br />

• A descripti<strong>on</strong>, i.e. a filter name.<br />

• A CoS: <strong>the</strong> value of this field can be ei<strong>the</strong>r a service identifier (S1, S2, …) or a DSCP. If this<br />

value is a service identifier, <strong>the</strong>n <strong>the</strong> DSCP associated with <strong>the</strong> filter will be found by <strong>the</strong> TUM<br />

in <strong>the</strong> ST.<br />

• A list of items, with <strong>the</strong>ir values. The number of items is not limited, <str<strong>on</strong>g>and</str<strong>on</strong>g> a list of items can be<br />

empty (<strong>the</strong>n, all <strong>the</strong> packets are marked with <strong>the</strong> DSCP associated with <strong>the</strong> filter). Packets are<br />

marked with <strong>the</strong> DSCP associated with <strong>the</strong> filter <strong>on</strong>ly if all <strong>the</strong> items values are equal to <strong>the</strong><br />

corresp<strong>on</strong>ding fields values in <strong>the</strong> different headers of <strong>the</strong> packet. On <strong>the</strong> previous example, a<br />

packet will be marked with <strong>the</strong> ‘101110’ DSCP (which is associated with <strong>the</strong> S1 service in <strong>the</strong><br />

ST) <strong>on</strong>ly if, in <strong>the</strong> packet headers, <strong>the</strong> TCP Destinati<strong>on</strong> Port is set to ‘21’ <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> IPv6 Source<br />

Address is set to ‘FEDC:…:3210’. If <strong>on</strong>ly <strong>on</strong>e value doesn’t match, <strong>the</strong>n <strong>the</strong> filter also doesn’t<br />

match.<br />

Typically, each descripti<strong>on</strong> can use all <strong>the</strong> possible fields of <strong>the</strong> different headers added by <strong>the</strong> network<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> transport layers. This software supports a large subset of <strong>the</strong>se fields, in <strong>the</strong> following headers:<br />

IPv6 main header, TCP, UDP, Destinati<strong>on</strong> opti<strong>on</strong> (including <strong>the</strong> Binding Update, Binding<br />

Acknowledgment, Binding Request, <str<strong>on</strong>g>and</str<strong>on</strong>g> Home Address opti<strong>on</strong>s), Routing opti<strong>on</strong>, Hop-by-hop opti<strong>on</strong>,<br />

Au<strong>the</strong>nticati<strong>on</strong> opti<strong>on</strong>, Encapsulating Security Payload (ESP) opti<strong>on</strong>, Fragment opti<strong>on</strong>, IPv6 (tunneling),<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> ICMPv6.<br />

The goal of this software is simple: <strong>the</strong> filtering rules will not be directly written in <strong>the</strong>. In fact, <strong>the</strong><br />

software will offer <strong>the</strong> possibility to filter packets using a more or less complete subset of <strong>the</strong> different<br />

header fields. Only <strong>the</strong> user, <str<strong>on</strong>g>and</str<strong>on</strong>g>/or <strong>the</strong> network administrator, thanks to <strong>the</strong>ir good knowledge of <strong>the</strong><br />

network protocols, will be able to define precisely <strong>the</strong>se rules. Thus, <strong>the</strong> code of <strong>the</strong> software will be <strong>the</strong><br />

same in all <strong>the</strong> different entities of <strong>the</strong> network using it, <str<strong>on</strong>g>and</str<strong>on</strong>g> in all <strong>the</strong> different <strong>QoS</strong> domains. Only <strong>the</strong><br />

c<strong>on</strong>tents of <strong>the</strong> filters will change from an entity to ano<strong>the</strong>r, or from a <strong>QoS</strong> domain to ano<strong>the</strong>r.<br />

A filter can support <strong>the</strong> following fields (Table 3):<br />

Field name Format Descripti<strong>on</strong><br />

C<strong>on</strong>trol fields (m<str<strong>on</strong>g>and</str<strong>on</strong>g>atory)<br />

Filter Decimal (0 to 99) Number <str<strong>on</strong>g>and</str<strong>on</strong>g> priority of <strong>the</strong> filter<br />

Descripti<strong>on</strong> Text (without spaces) Name of <strong>the</strong> filter<br />

CoS String (S) Service Identifier (S1, S2, …SN) or DSCP<br />

or Binary (1 to 6 bits)<br />

IPv6 main header fields<br />

IP6DSCP Binary (6 bits) Current DSCP of <strong>the</strong> packet<br />

IP6FlowLbl Decimal (0 to 16777215) Flow label of <strong>the</strong> packet<br />

IP6PayloadLen Decimal (0 to 655350) Length of <strong>the</strong> data after <strong>the</strong> IPv6 header<br />

IP6HopLim Decimal (0 to 255) TTL of <strong>the</strong> packet<br />

IP6SrcAddr IPv6 address format<br />

IPv6 source address of <strong>the</strong> packet<br />

(Hexadecimal):<br />

X:X:X:X:X:X:X:X<br />

with X=FEC0 or X=3245,<br />

…<br />

‘::’ is supported<br />

IP6DestAddr IPv6 address format<br />

IPv6 destinati<strong>on</strong> address of <strong>the</strong> packet<br />

(Hexadecimal)<br />

ICMPv6 header fields<br />

CEC Deliverable Number D0202 30 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

ICMP6Header Decimal (1 or 0) ICMPv6 packet detecti<strong>on</strong><br />

ICMP6Type Decimal (0 to 255) ICMPv6 packet type<br />

ICMP6Code Decimal (0 to 255) ICMPv6 packet code<br />

Binding Update fields (part of <strong>the</strong> Destinati<strong>on</strong> Opti<strong>on</strong>)<br />

ExtBU Decimal (1 or 0) Binding Update detecti<strong>on</strong><br />

ExtBULg Decimal (0 to 255) Binding Update length<br />

ExtBUA Binary (1 bit) Binding Update acknowledgement request<br />

ExtBUH Binary (1 bit) Home Agent request<br />

ExtBUR Binary (1 bit) Mobile Router<br />

ExtBUD Binary (1 bit) Duplicate Address Detecti<strong>on</strong> request<br />

ExtBUMAPReg Binary (1 bit) MAP registrati<strong>on</strong><br />

ExtBUBicast Binary (1 bit) Bicasting request<br />

ExtBUResv Binary (2 bits) Binding Update reserved/unused bits<br />

ExtBUPrefLg Decimal (0 to 255) Length of <strong>the</strong> prefix to use for MT addresses<br />

ExtBUSeq Decimal (0 to 65535) Binding Update sequence number<br />

ExtBULTime Decimal (0 to 4294967295) Associati<strong>on</strong> lifetime<br />

Binding Acknowledgement fields (part of <strong>the</strong> Destinati<strong>on</strong> Opti<strong>on</strong>)<br />

ExtBA Decimal (1 or 0) Binding Acknowledgement detecti<strong>on</strong><br />

ExtBALg Decimal (0 to 255) Binding Acknowledgement length<br />

ExtBAStatus Decimal (0 to 255) Binding Acknowledgement status<br />

ExtBASeq Decimal (0 to 65535) Binding Acknowledgement sequence number<br />

ExtBALTime Decimal (0 to 4294967295) Associati<strong>on</strong> lifetime<br />

ExtBARefresh Decimal (0 to 4294967295) Refreshing period<br />

Binding Request fields (part of <strong>the</strong> Destinati<strong>on</strong> Opti<strong>on</strong>)<br />

ExtBR Decimal (1 or 0) Binding Request detecti<strong>on</strong><br />

ExtBRLg Decimal (0 to 255) Binding Request length<br />

Home Address fields (part of <strong>the</strong> Destinati<strong>on</strong> Opti<strong>on</strong>)<br />

ExtHoA Decimal (1 or 0) Home Address detecti<strong>on</strong><br />

ExtHoALg Decimal (0 to 255) Home Address length<br />

ExtHoAAddr IPv6 address format<br />

Main Home Address<br />

(Hexadecimal)<br />

Sub-opti<strong>on</strong>s detecti<strong>on</strong> (for Destinati<strong>on</strong> Opti<strong>on</strong> <strong>on</strong>ly)<br />

ExtSoptUI Decimal (1 or 0) Unique Identifier sub-opti<strong>on</strong><br />

ExtSoptACoA Decimal (1 or 0) Alternate Care-of-Address sub-opti<strong>on</strong><br />

ExtSoptAD Decimal (1 or 0) Au<strong>the</strong>nticati<strong>on</strong> Data sub-opti<strong>on</strong><br />

Hop-by-hop Opti<strong>on</strong> fields<br />

ExtHop Decimal (1 or 0) Hop-by-Hop opti<strong>on</strong> detecti<strong>on</strong><br />

ExtHopType Decimal (0 to 255) Hop-by-Hop opti<strong>on</strong> type<br />

ExtHopLg Decimal (0 to 255) Hop-by-Hop opti<strong>on</strong> length<br />

ExtHopRAVal Decimal (0 to 65535) Router Alert value<br />

ExtHopJDataLg Decimal (0 to 255) Jumbo packet data length<br />

Fragment header fields<br />

ExtFrag Decimal (1 or 0) Fragment header detecti<strong>on</strong><br />

ExtFragPlace Decimal (0 to 8191) Place of <strong>the</strong> fragment in <strong>the</strong> data<br />

ExtFragM Binary (1 bit) Fragment header M bit<br />

ExtFragId Decimal (0 to 4294967295) Packet identifier (same ID for all <strong>the</strong> fragments of a<br />

same packet)<br />

Routing header fields<br />

ExtRout Decimal (1 or 0) Routing header detecti<strong>on</strong><br />

ExtRoutLg Decimal (0 to 255) Header length in number of 64 bits words minus <strong>on</strong>e<br />

ExtRoutType Decimal (0 to 255) Routing header type<br />

ExtRoutSeg Decimal (0 to 255) Number of remaining segments (nodes to cross)<br />

ExtRoutAddrN IPv6 address format<br />

One address to search into <strong>the</strong> address list<br />

(Hexadecimal)<br />

ExtRoutAddrDest IPv6 address format<br />

Destinati<strong>on</strong> address in <strong>the</strong> address list<br />

(Hexadecimal)<br />

Au<strong>the</strong>nticati<strong>on</strong> header fields<br />

ExtAuth Decimal (1 or 0) Au<strong>the</strong>nticati<strong>on</strong> header detecti<strong>on</strong><br />

CEC Deliverable Number D0202 31 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

ExtAuthResv Decimal (0 to 65535) Reserved bits<br />

ExtAuthSeq Decimal (0 to 4294967295) Sequence number<br />

ExtAuthSPI Decimal (0 to 4294967295) Security Parameters Index (SPI)<br />

ExtAuthData Boolean (1 or 0) Au<strong>the</strong>nticati<strong>on</strong> data<br />

ESP header fields<br />

ExtESP Decimal (1 or 0) ESP header detecti<strong>on</strong><br />

ExtESPSPI Decimal (0 to 4294967295) Security Parameters Index (SPI)<br />

ExtESPSeq Decimal (0 to 4294967295) Sequence number<br />

TCP header fields<br />

TCPHeader Boolean (1 or 0) TCP header detecti<strong>on</strong><br />

TCPSrcPort Decimal (0 to 65535) TCP source port<br />

TCPDestPort Decimal (0 to 65535) TCP destinati<strong>on</strong> port<br />

TCPSeq Decimal (0 to 4294967295) TCP sequence number<br />

TCPAckSeq Decimal (0 to 4294967295) TCP acknowledgement sequence number<br />

TCPDataOff Decimal (0 to 63) Offset of <strong>the</strong> data in <strong>the</strong> TCP header<br />

TCPRsv Decimal (0 to 15) 4 reserved bits in <strong>the</strong> TCP header<br />

TCPCtrlCwr Binary (1 bit) C<strong>on</strong>gesti<strong>on</strong> Window Reduced bit<br />

TCPCtrlEce Binary (1 bit) ECN-Echo bit<br />

TCPCtrlUrg Binary (1 bit) Urgent bit<br />

TCPCtrlAck Binary (1 bit) Acknowledgement bit<br />

TCPCtrlPsh Binary (1 bit) Push bit<br />

TCPCtrlRst Binary (1 bit) Reset bit<br />

TCPCtrlSyn Binary (1 bit) Synchr<strong>on</strong>izati<strong>on</strong> bit<br />

TCPCtrlFin Binary (1 bit) Fin bit (end of transmissi<strong>on</strong>)<br />

TCPWin Decimal (0 to 65535) Size of <strong>the</strong> window <strong>the</strong> receiver is able to receive<br />

TCPUrgPtr Decimal (0 to 65535) Urgent data pointer<br />

UDP header fields<br />

UDPHeader Boolean (1 or 0) UDP header detecti<strong>on</strong><br />

UDPSrcPort Decimal (0 to 65535) UDP source port<br />

UDPDestPort Decimal (0 to 65535) UDP destinati<strong>on</strong> port<br />

UDPLen Decimal (0 to 65535) Length of <strong>the</strong> UDP datagram<br />

Tunneled packet fields<br />

Tunnel Boolean (1 or 0) Tunneled IPv6 packet detecti<strong>on</strong><br />

TunnelDSCP Binary (6 bits) DSCP of <strong>the</strong> inner packet<br />

Table 3: Filtering rules list<br />

3.4.3.2 DSCP Matching Table<br />

When a user, or a network administrator, triggers a modificati<strong>on</strong> of <strong>the</strong> filters descripti<strong>on</strong>s, <strong>the</strong> TUM<br />

modifies <strong>the</strong> DMT automatically. In this secti<strong>on</strong>, we describe how this table is organized.<br />

Filter number<br />

(= line number)<br />

0<br />

1<br />

2<br />

3<br />

4<br />

…<br />

N<br />

Filter Pointer<br />

Filter0Ptr<br />

NULL<br />

Filter2Ptr<br />

Filter3Ptr<br />

NULL<br />

…<br />

FilterNPtr<br />

Table 4: Format of <strong>the</strong> DMT<br />

Each line of <strong>the</strong> table <strong>on</strong>ly c<strong>on</strong>tains a pointer to a complete descripti<strong>on</strong> of a filter loaded in <strong>the</strong> memory<br />

(see Table 4).<br />

CEC Deliverable Number D0202 32 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Each filter is a simple structure c<strong>on</strong>taining a descripti<strong>on</strong>, <strong>the</strong> DSCP (CoS) used to mark each packet that<br />

matches this filter, a set of bits identifying <strong>the</strong> different headers to examine, <str<strong>on</strong>g>and</str<strong>on</strong>g> a pointer to a list of items<br />

representing <strong>the</strong> different fields of <strong>the</strong> packet header that are to be inspected (see Figure 24). Thus, <strong>the</strong><br />

number of fields in a filter is variable. The bits identifying <strong>the</strong> different headers to examine accelerate <strong>the</strong><br />

filtering process. Indeed, if a filter c<strong>on</strong>tains items related to TCP fields, <str<strong>on</strong>g>and</str<strong>on</strong>g> if <strong>the</strong> packet does not c<strong>on</strong>tain<br />

a TCP header, <strong>the</strong> filter doesn’t match, <str<strong>on</strong>g>and</str<strong>on</strong>g> browsing its items list <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> header fields’ values becomes<br />

useless. The use of <strong>the</strong>se bits avoids useless treatments in <strong>the</strong> DMF.<br />

Every item of this list c<strong>on</strong>tains an identificati<strong>on</strong> of <strong>the</strong> field to inspect, i.e. a value identifying <strong>the</strong> name of<br />

<strong>the</strong> field in <strong>the</strong> kernel (IP6_SRC_ADDR is equivalent to <strong>the</strong> IP6SrcAddr field in <strong>the</strong> FD,<br />

TCP_SRC_PORT is equivalent to <strong>the</strong> TCPSrcPort field, etc.), <strong>the</strong> expected value of this field, <str<strong>on</strong>g>and</str<strong>on</strong>g> a<br />

pointer to <strong>the</strong> next item.<br />

Desc.: ANiceFilter<br />

Headers: IP6, TCP<br />

CoS: 101101<br />

Items list: item1<br />

Ident.: IP6_SRC_ADDR<br />

Value: FEC0::1<br />

Next: item2<br />

Ident.: IP6_DSCP<br />

Value: 010110<br />

Next: item3<br />

Ident.: TCP_SRC_PORT<br />

Value: 21<br />

Next: NULL<br />

Figure 24: Representati<strong>on</strong> of a filter in <strong>the</strong> Linux kernel<br />

It is possible that <strong>the</strong> informati<strong>on</strong> extracted from <strong>the</strong> packet header matches with several filters. Only <strong>the</strong><br />

first filter is taken into account. Thus, <strong>the</strong> number of <strong>the</strong> filter, which is <strong>the</strong> range of <strong>the</strong> filter in <strong>the</strong> table,<br />

represents its priority. The lower is this number, <strong>the</strong> greater is <strong>the</strong> priority of <strong>the</strong> filter. So, it is important<br />

to sort <strong>the</strong> filters from <strong>the</strong> more detailed to <strong>the</strong> less detailed.<br />

Table updates<br />

The TUM modifies <strong>the</strong> DMT each time <strong>the</strong> user, or <strong>the</strong> network administrator, modifies <strong>the</strong> FD <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

communicates it to <strong>the</strong> module (Figure 25). The modified FD – which is a single text file – is forwarded<br />

to <strong>the</strong> module over a simple Linux character device (/dev/dscp). This soluti<strong>on</strong> is <strong>the</strong> simplest way to<br />

communicate informati<strong>on</strong> from <strong>the</strong> user space (here, <strong>the</strong> FD) to <strong>the</strong> kernel space where <strong>the</strong> DMT is<br />

located.<br />

Thus, <strong>the</strong> user <strong>on</strong>ly has to write <strong>on</strong> this device with <strong>the</strong> c<strong>on</strong>tents of <strong>the</strong> FD (by <strong>the</strong> ‘cat filters_database.txt<br />

> /dev/dscp’ comm<str<strong>on</strong>g>and</str<strong>on</strong>g> for ex.). Then, <strong>the</strong> TUM automatically reads <strong>the</strong> text written <strong>on</strong> <strong>the</strong> device, <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

updates <strong>the</strong> DMT in <strong>the</strong> Linux kernel. Note that it is not necessary to write <strong>the</strong> entire FD <strong>on</strong> <strong>the</strong> device to<br />

update properly <strong>the</strong> DMT: <strong>on</strong>ly a file c<strong>on</strong>taining new filters, or a subset of modified filters can be<br />

communicated to <strong>the</strong> TUM.<br />

User<br />

AAAC<br />

Table update<br />

Module<br />

3b<br />

Filtering Rules & DSCP<br />

1 2 3a<br />

Service<br />

Table<br />

Character device<br />

/dev/dscp<br />

1: Filters writing<br />

2: Filters reading<br />

DSCP<br />

Matching<br />

Table<br />

3a: DSCP update<br />

3b: Filters update<br />

CEC Deliverable Number D0202 33 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Figure 25: DMT <str<strong>on</strong>g>and</str<strong>on</strong>g> SC update process<br />

For <strong>the</strong> moment, <strong>the</strong> table update process is triggered manually, by writing <strong>on</strong> <strong>the</strong> /dev/dscp character<br />

device. However, it is possible to make <strong>the</strong> AAAC system update <strong>the</strong> FD, in <strong>the</strong> same way than <strong>the</strong> DSCP<br />

update (see secti<strong>on</strong> 3.4.6) or triggering automatic updates regularly, in <strong>the</strong> user space.<br />

3.4.4 DSCP marking<br />

DSCP marking is d<strong>on</strong>e thanks to a modificati<strong>on</strong> of <strong>the</strong> Traffic Class <str<strong>on</strong>g>and</str<strong>on</strong>g> Flow Label fields in <strong>the</strong> IPv6<br />

header. When <strong>the</strong> informati<strong>on</strong> of <strong>the</strong> packet header matches with a filter, <strong>the</strong> corresp<strong>on</strong>ding DSCP is<br />

marked in <strong>the</strong> header of <strong>the</strong> packet: <strong>the</strong> four first bits of <strong>the</strong> DSCP are stored in <strong>the</strong> last four bits of <strong>the</strong><br />

Traffic Class field, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> last two bits, plus two bits set to ‘0’, are stored in <strong>the</strong> four first bits of <strong>the</strong> Flow<br />

Label field.<br />

DSCP<br />

Vers<br />

TC<br />

…..<br />

Flow Label<br />

Figure 26: DSCP bits in <strong>the</strong> IPv6 main header<br />

3.4.5 Packet re-marking<br />

This operati<strong>on</strong> is supported by <strong>the</strong> DMT, if <strong>the</strong> DMS is installed in a Linux router. To re-mark packets,<br />

<strong>the</strong> network administrator has just to add a new filter, c<strong>on</strong>taining a ‘IP6DSCP’ item, in <strong>the</strong> FD. This filter<br />

evaluates <strong>the</strong> DSCP in <strong>the</strong> new packet header, <str<strong>on</strong>g>and</str<strong>on</strong>g> associates a new value with it.<br />

3.4.6 DSCP updates<br />

In <strong>the</strong> first versi<strong>on</strong> of <strong>the</strong> DMS, provided in October 2002, <strong>the</strong> ‘CoS’ field value in each filter in <strong>the</strong> FD<br />

was <strong>on</strong>ly a DSCP (e.g. ‘110110’, …). However, if we c<strong>on</strong>sider that several users can be located <strong>on</strong> <strong>the</strong><br />

same MT, but with different <strong>QoS</strong> c<strong>on</strong>tracts, <strong>the</strong> same applicati<strong>on</strong>s may use different <strong>QoS</strong> services for two<br />

different users. Thus, when a user enters in a new domain, she has to load <strong>the</strong> proper DSCP for each<br />

service she’s authorized to ask for, <str<strong>on</strong>g>and</str<strong>on</strong>g> to associate each service to each applicati<strong>on</strong> she can launch. The<br />

sec<strong>on</strong>d versi<strong>on</strong> of <strong>the</strong> DMS, provided in March 2003, offers <strong>the</strong> possibility to <strong>the</strong> user to use both DSCP<br />

values <str<strong>on</strong>g>and</str<strong>on</strong>g> service identifiers in her filters. In fact, a user can write a service identifier in <strong>the</strong> ‘CoS’ field<br />

instead of a DSCP, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> TUM associates itself this service identifier with a DSCP value, loaded from<br />

<strong>the</strong> network, thanks to <strong>the</strong> Service Table.<br />

So, when a user registers, <strong>the</strong> AAAC module in <strong>the</strong> MT simply sends a list of service identifiers, with<br />

<strong>the</strong>ir associated DSCPs, to <strong>the</strong> TUM, via <strong>the</strong> /dev/dscp character device (see Figure 25). For example, it<br />

can write ‘SIG 50’, ‘S1 5’, ‘S2 10’, ‘S3 15’, …, ‘S7 35’ <strong>on</strong> <strong>the</strong> device. Then <strong>the</strong> ST looks like in Table 5.<br />

Service DSCP<br />

SIG 50<br />

S1 5<br />

S2 10<br />

S3 15<br />

S4 20<br />

S5 25<br />

S6 30<br />

S7 35<br />

Table 5: Service Table example<br />

What we call here a ‘service’ is <strong>on</strong>ly a marking type. The service noti<strong>on</strong> in <strong>the</strong> MT is lightly different<br />

from <strong>the</strong> service noti<strong>on</strong> in <strong>the</strong> network. In fact, S1 means ‘<strong>the</strong> first service marking type’. So, if <strong>the</strong> user is<br />

CEC Deliverable Number D0202 34 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

authorized to use <strong>on</strong>ly a subset of <strong>the</strong> network services, it is possible that several marking types will have<br />

<strong>the</strong> same value, which means that different applicati<strong>on</strong>s associated with different service names may, in<br />

fact, use <strong>the</strong> same DSCP.<br />

During <strong>the</strong> user registrati<strong>on</strong>, <strong>the</strong> MT will always receive seven DSCP codes, which is <strong>the</strong> number of CoS<br />

defined in Moby Dick. The filters will also be <strong>the</strong> same in all <strong>the</strong> Mobile Terminals.<br />

By default, all <strong>the</strong> DSCPs are set to 0, excepted <strong>the</strong> SIG value, which is set to 34 (100010 in binary). Each<br />

DSCP can be manually initialised, by <strong>the</strong> user or <strong>the</strong> MT administrator himself, by writing ‘SX DSCPX’<br />

<strong>on</strong> <strong>the</strong> /dev/dscp character device, where X is <strong>the</strong> service number. However, a manual initialisati<strong>on</strong> of <strong>the</strong><br />

DSCPs is probably useless, c<strong>on</strong>sidering that a user cannot send traffic towards <strong>the</strong> network without<br />

registering first.<br />

3.5 The radio resource management<br />

All Radio Resource Management (RRM) functi<strong>on</strong>s located in <strong>the</strong> Core Network of traditi<strong>on</strong>al UMTS<br />

infrastructures have disappeared, as we implemented a True-IP signaling approach. The IP <strong>QoS</strong> C<strong>on</strong>trol<br />

procedures, based <strong>on</strong> DiffServ codepoints, must now be directly mapped <strong>on</strong>to <strong>the</strong> physical layer<br />

(replacing <strong>the</strong> former UMTS RRM procedures). Figure 4 has presented <strong>the</strong> Mobile Terminal <str<strong>on</strong>g>and</str<strong>on</strong>g> Access<br />

Router comp<strong>on</strong>ents involved in <strong>the</strong> h<str<strong>on</strong>g>and</str<strong>on</strong>g>ling of TD-CDMA radio resources.<br />

This new approach is c<strong>on</strong>trolled by <strong>the</strong> <strong>QoS</strong> Broker. When a new service is started, it maps <strong>the</strong> IP DSCP<br />

code of <strong>the</strong> first packet received by <strong>the</strong> Access Router <strong>on</strong>to <strong>on</strong>e of <strong>the</strong> Radio <strong>QoS</strong> classes <str<strong>on</strong>g>and</str<strong>on</strong>g> sends a<br />

request to <strong>the</strong> <strong>QoS</strong> Mapping comp<strong>on</strong>ent in <strong>the</strong> Radio Gateway, requesting <strong>the</strong> allocati<strong>on</strong> of <strong>the</strong><br />

corresp<strong>on</strong>ding resources. This entity stores <strong>the</strong> mapping informati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> forwards <strong>the</strong> request to <strong>the</strong><br />

Radio Resource C<strong>on</strong>trol (RRC) entity of <strong>the</strong> Radio Interface Protocols c<strong>on</strong>stituting <strong>the</strong> Access Stratum.<br />

The process in <strong>the</strong> TD-CDMA Access Stratum is shown in Figure 27.<br />

NAS<br />

C<strong>on</strong>fig generati<strong>on</strong><br />

DSCP, Radio class N°, RB N°<br />

RRM<br />

IP class UMTS class Qos parameters (BER, delay, ..)<br />

S1<br />

S3<br />

S4<br />

S5<br />

S6<br />

Broadcast<br />

FACH RACH<br />

RG C<strong>on</strong>fig<br />

Mapping Table<br />

MS0<br />

MS1<br />

RRC RG<br />

…<br />

C<strong>on</strong>fig table<br />

Figure 27: Computing of TD-CDMA radio parameters in <strong>the</strong> Radio Gateway<br />

With <strong>the</strong> help of a new RRM entity, <strong>the</strong> RRC computes <strong>the</strong> changes of <strong>the</strong> radio parameters needed in <strong>the</strong><br />

RG <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> MT to ensure a proper operati<strong>on</strong> of <strong>the</strong> o<strong>the</strong>r Radio Interface Protocols shown in Figure 28:<br />

PDCP, RLC, MAC <str<strong>on</strong>g>and</str<strong>on</strong>g> PHY. The list of <strong>the</strong> parameters to compute is described in specificati<strong>on</strong> [1].<br />

A mapping table in <strong>the</strong> RRC provides a set of UMTS parameters such as BER, delay according to <strong>the</strong><br />

requested Radio <strong>QoS</strong> class. The computati<strong>on</strong> of <strong>the</strong> radio parameters is based both <strong>on</strong> this set of<br />

parameters, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> existing c<strong>on</strong>figurati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> allocated resources. .<br />

These parameters are also transferred from <strong>the</strong> Radio Gateway to <strong>the</strong> Mobile Terminal using <strong>the</strong> RRC<br />

protocol.<br />

CEC Deliverable Number D0202 35 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

IPv6 Protocol Stack<br />

N<strong>on</strong>-Access Stratum (Driver)<br />

IP/Radio <strong>QoS</strong> Mapping<br />

C<strong>on</strong>trol<br />

Data<br />

RRC+RRM<br />

PDCP<br />

RLC / Radio Bearers<br />

MAC / Logical & Transport Channels<br />

Access Stratum<br />

RRC: Radio Resource C<strong>on</strong>trol<br />

RRM: Radio Resource Management<br />

RLC: Radio Link C<strong>on</strong>trol<br />

MAC: Medium Access C<strong>on</strong>trol<br />

PDCP: Packet Data C<strong>on</strong>vergence Protocol<br />

PHY: Physical Layer<br />

PHY / Physical Channels<br />

Radio Interface<br />

Figure 28: Layered visi<strong>on</strong> of <strong>the</strong> MT <str<strong>on</strong>g>and</str<strong>on</strong>g> AR TD-CDMA architecture (Radio <strong>QoS</strong>)<br />

Their loading in both network comp<strong>on</strong>ents enables <strong>the</strong> opening of a new radio bearer, usually mapped<br />

<strong>on</strong>to dedicated logical, transport <str<strong>on</strong>g>and</str<strong>on</strong>g> physical channels, as shown in Figure 28. Once this radio bearer is<br />

available, <strong>the</strong> N<strong>on</strong> Access Stratum can use it to transfer user data through <strong>the</strong> PDCP <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> lower layers,<br />

according to <strong>the</strong> previously stored mapping. When <strong>the</strong> user traffic is over, <strong>the</strong> <strong>QoS</strong> Broker can close <strong>the</strong><br />

radio bearer in <strong>the</strong> exact same manner.<br />

4. <strong>QoS</strong> signaling in Moby Dick<br />

The Moby Dick <strong>QoS</strong> entities interact between <strong>the</strong>m, but also with both security <str<strong>on</strong>g>and</str<strong>on</strong>g> mobility entities.<br />

Signaling messages are exchanged between:<br />

• The <strong>QoS</strong> Manager <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> <strong>QoS</strong> Broker with:<br />

o A router registrati<strong>on</strong>: <strong>the</strong> AR opens a COPS c<strong>on</strong>necti<strong>on</strong> with <strong>the</strong> <strong>QoS</strong> Broker,<br />

o <strong>QoS</strong> c<strong>on</strong>figurati<strong>on</strong>s: <strong>the</strong> <strong>QoS</strong> Broker c<strong>on</strong>figure <strong>the</strong> AR queues with CBQ <str<strong>on</strong>g>and</str<strong>on</strong>g> RIO<br />

parameters,<br />

o Resource allocati<strong>on</strong>s: <strong>the</strong> <strong>QoS</strong> Broker allocates resources for each new couple ,<br />

o Queues state m<strong>on</strong>itoring: <strong>the</strong> <strong>QoS</strong> Manager reports <strong>the</strong> state of its queues to <strong>the</strong> <strong>QoS</strong><br />

Broker,<br />

o FHO c<strong>on</strong>text transfers from old ARs to new ARs, towards <strong>the</strong> <strong>QoS</strong> Broker,<br />

o C<strong>on</strong>necti<strong>on</strong> checks: <strong>the</strong> <strong>QoS</strong> Manager sends ‘Keep alive’ messages to <strong>the</strong> <strong>QoS</strong> Broker<br />

to maintain <strong>the</strong> communicati<strong>on</strong>,<br />

o End of communicati<strong>on</strong>: <strong>the</strong> <strong>QoS</strong> Manager ends <strong>the</strong> communicati<strong>on</strong> with <strong>the</strong> <strong>QoS</strong><br />

Broker.<br />

• The <strong>QoS</strong> Broker <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> AAAC Server, to dump <strong>the</strong> NVUP to <strong>the</strong> <strong>QoS</strong> Broker during <strong>the</strong> user<br />

registrati<strong>on</strong> process<br />

4.1 Signaling between <strong>QoS</strong> Manager <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong> Broker<br />

By means of <strong>the</strong> COPS protocol (Comm<strong>on</strong> Open Policy Service) <strong>the</strong> Access Router communicates with<br />

<strong>the</strong> <strong>QoS</strong> Broker. The COPS protocol is client-server. Thus all <strong>the</strong> petiti<strong>on</strong>s are initiated by <strong>the</strong> client with<br />

<strong>the</strong> sole excepti<strong>on</strong> of <strong>the</strong> FHO message from <strong>the</strong> <strong>QoS</strong> Broker to <strong>the</strong> new AR (nAR). In our envir<strong>on</strong>ment<br />

<strong>the</strong> AR is <strong>the</strong> COPS client (PEP) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> <strong>QoS</strong> Broker <strong>the</strong> server (PDP). In this secti<strong>on</strong>, we present <strong>the</strong><br />

messages sequence that takes place when <strong>the</strong> AR starts.<br />

CEC Deliverable Number D0202 36 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

4.1.1 Router registrati<strong>on</strong><br />

Once <strong>the</strong> TCP c<strong>on</strong>necti<strong>on</strong> is open, <strong>the</strong> Router begins <strong>the</strong> COPS dialog sending <strong>the</strong> registrati<strong>on</strong> message<br />

“Client-Open”. In this message, apart from <strong>the</strong> header that has <strong>the</strong> client's type identifier (0xff02 in this<br />

case), a COPS object called ‘PEPID’ is sent. The PEPID is a text string, finished with <strong>the</strong> null character,<br />

which identifies uniquely <strong>the</strong> client. In our development we have chosen to put <strong>the</strong> DNSv6 name of <strong>the</strong><br />

client machine in this field, which should be smaller than 30 characters.<br />

The “Client-Open” message is <strong>the</strong> following <strong>on</strong>e (Fig. 29):<br />

<br />

Ver 1 Flg 0 Op. Code 6 Client Type: 0xFF02<br />

Message length: 8+[4+len(PEPID)+padding] (bytes)<br />

Leng: 4+len(PEPID)+padding C-Num 11 C-Type 1<br />

<br />

PEPID (max. 30 characters = 30 bytes)<br />

NULL<br />

Padding: 0x00..00<br />

Figure 29: COPS Client-Open message. AR-><strong>QoS</strong> Broker<br />

Once <strong>the</strong> <strong>QoS</strong> Broker (PDP) checks this message <str<strong>on</strong>g>and</str<strong>on</strong>g>, if it is correct, it resp<strong>on</strong>ds to <strong>the</strong> Router with a<br />

“Client-Accept” message. This message c<strong>on</strong>tains a ‘KATimer’ object <str<strong>on</strong>g>and</str<strong>on</strong>g> an ‘AcctTimer’ object. The<br />

“Client-Accept” message is <strong>the</strong> following <strong>on</strong>e (Fig. 30):<br />

<br />

<br />

<br />

Ver 1 Flg 0 OP. Code 7 Client Type: 0xFF01<br />

Message Length: 24 (bytes)<br />

Object length: 8 C-Num 10 C-Type 1<br />

0x0000 KA Timer Value: 120<br />

Object length: 8 C-Num 15 C-Type 1<br />

0x0000 AcctTimer value: 20<br />

Figure 30: COPS Client-Accept message. <strong>QoS</strong> Broker->AR<br />

The registrati<strong>on</strong> sequence can be represented as in Fig. 31:<br />

Client Open<br />

<strong>QoS</strong> Broker<br />

Client Accept<br />

Access<br />

Router<br />

Figure 31: Router registrati<strong>on</strong> sequence<br />

4.1.2 <strong>QoS</strong> c<strong>on</strong>figurati<strong>on</strong> dialogue<br />

Once <strong>the</strong> router has registered correctly in <strong>the</strong> <strong>QoS</strong> Broker, it requests to <strong>the</strong> Broker <strong>the</strong> <strong>QoS</strong> queues<br />

c<strong>on</strong>figurati<strong>on</strong>, which must be applied in its access interface for packets going from <strong>the</strong> core to <strong>the</strong> access.<br />

For this purpose three COPS messages are exchanged: first <strong>the</strong> Router requests <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong>, later <strong>the</strong><br />

CEC Deliverable Number D0202 37 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

<strong>QoS</strong> Broker resp<strong>on</strong>ds with <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong>, <str<strong>on</strong>g>and</str<strong>on</strong>g> finally <strong>the</strong> Router informs <strong>the</strong> <strong>QoS</strong> Broker about <strong>the</strong><br />

c<strong>on</strong>figurati<strong>on</strong> result. We pass to see <strong>the</strong>se messages.<br />

The first <strong>on</strong>e is a ‘Request’ message, which <strong>on</strong>ly c<strong>on</strong>tains m<str<strong>on</strong>g>and</str<strong>on</strong>g>atory objects <str<strong>on</strong>g>and</str<strong>on</strong>g> an ‘Out Interface’ object<br />

identifying <strong>the</strong> AR interface where <strong>QoS</strong> queues are going to be c<strong>on</strong>figured. In <strong>the</strong> m<str<strong>on</strong>g>and</str<strong>on</strong>g>atory objects, we<br />

have to highlight two important fields: <strong>the</strong> ‘h<str<strong>on</strong>g>and</str<strong>on</strong>g>le’ in <strong>the</strong> ‘Client H<str<strong>on</strong>g>and</str<strong>on</strong>g>le’ object, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> ‘R-Type’ in <strong>the</strong><br />

‘C<strong>on</strong>text’ object. These objects are filled with <strong>the</strong> values of ‘0’ (signaling h<str<strong>on</strong>g>and</str<strong>on</strong>g>le) <str<strong>on</strong>g>and</str<strong>on</strong>g> ‘8’ respectively.<br />

The last value (8) means: ‘C<strong>on</strong>figurati<strong>on</strong> Request’.<br />

The ‘Out Interface’ object is a st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard COPS object used to identify <strong>the</strong> outgoing interface to which a<br />

specific request applies. It c<strong>on</strong>tains an IPv6 address <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> Access Router interface index number. The<br />

first <strong>on</strong>e is always a loop back address (::1) because <strong>the</strong> PEP is <strong>the</strong> destinati<strong>on</strong> of this message. The<br />

sec<strong>on</strong>d <strong>on</strong>e is an integer which identifies <strong>the</strong> interface; this integer can be obtained with <strong>the</strong> TC API<br />

functi<strong>on</strong> mapNameToInterface() or with <strong>the</strong> C st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard functi<strong>on</strong> if_nametoindex().<br />

The “C<strong>on</strong>figurati<strong>on</strong> Request” message is defined in Fig. 32:<br />

<br />

<br />

<br />

Ver 1 Flg 0 Op Code 1 Client Type: 0xFF02<br />

Message length: 48 (bytes)<br />

Object length: 8 C-Num 1 C-Type 1<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 0x00000000<br />

Object length: 8 C-Num 2 C-Type 1<br />

R-Type 8<br />

M-Type<br />

Object length: 24 C-Num 4 C-Type 2<br />

<br />

struct in6_addr sender = ::1<br />

int ifindex<br />

Figure 32: COPS c<strong>on</strong>figurati<strong>on</strong> request message. AR-><strong>QoS</strong> Broker<br />

Once <strong>the</strong> <strong>QoS</strong> Broker receives, identifies <str<strong>on</strong>g>and</str<strong>on</strong>g> checks <strong>the</strong> previous message, it builds a decisi<strong>on</strong> message<br />

based <strong>on</strong> <strong>the</strong> behavior data that it reads from a file during its start up. Those data, sent as ‘ClientSI<br />

Decisi<strong>on</strong> Data’ objects, are used to create <strong>the</strong> <strong>QoS</strong> tree structure in <strong>the</strong> DiffServ Logic in AR. For that<br />

purpose, <strong>the</strong> PEP in <strong>the</strong> AR uses <strong>the</strong> IBM TC API with <strong>the</strong> following parameters:<br />

- DSCP: 8 bits char field with <strong>the</strong> DSCP of <strong>the</strong> traffic to enqueue.<br />

- Agreg_Number: 8 bits char field with <strong>the</strong> CBQ queue number.<br />

- BW: 16 bits short integer field with <strong>the</strong> traffic b<str<strong>on</strong>g>and</str<strong>on</strong>g>width.<br />

- Borrow_flag: 16 bits short integer field with a flag for request (or not) unused b<str<strong>on</strong>g>and</str<strong>on</strong>g>width.<br />

- min_gred_queue: 16 bits short integer field with <strong>the</strong> RIO queue average minimum capacity<br />

value.<br />

- max_gred_queue: 16 bits short integer field with <strong>the</strong> RIO queue average maximum capacity<br />

value.<br />

- limit_gred_queue: 16 bits short integer field with <strong>the</strong> RIO queue limit capacity value.<br />

- prob_gred_queue: 16 bits short integer field with <strong>the</strong> RIO discard probability value.<br />

Negative values are not allowed (<strong>the</strong>y are treated as unsigned). We will see in <strong>the</strong> following secti<strong>on</strong> <strong>the</strong><br />

detailed <strong>QoS</strong> queues implementati<strong>on</strong> in our Router. The “C<strong>on</strong>figurati<strong>on</strong> Decisi<strong>on</strong>” message is <strong>the</strong><br />

following <strong>on</strong>e (Fig. 33):<br />

<br />

Ver 1 Flg 0 Op. Code 2 Client Type: 0xFF01<br />

Message Length: 32+20·N (bytes)<br />


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le Obj.><br />

<br />

<br />

#1<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 0x00000000<br />

Object length: 8 C-Num 2 C-Type 1<br />

R-Type 8<br />

M-Type<br />

Object length: 8 C-Num 6 C-Type 1<br />

Comm<str<strong>on</strong>g>and</str<strong>on</strong>g> Code: 1<br />

Flags<br />

Object length: 20 C-Num 6 C-Type 4<br />

DSCP: 0x00 Agreg. No. 0 B<str<strong>on</strong>g>and</str<strong>on</strong>g>width: 0<br />

Borrow_flag: 0 Min_gred_queue: 0<br />

Max_gred_queue: 0 Limit_gred_queue: 0<br />

prob_gred_queue: 0<br />

Padding: 0x0000<br />

. . . . . .<br />

#N<br />

Object length: 20 C-Num 6 C-Type 4<br />

DSCP: 0x0e Agreg. No. 5 B<str<strong>on</strong>g>and</str<strong>on</strong>g>width: 50<br />

Borrow_flag: 0 Min_gred_queue: 3<br />

Max_gred_queue: 10 Limit_gred_queue: 15<br />

prob_gred_queue: 50<br />

Padding: 0x0000<br />

Figure 33: COPS c<strong>on</strong>figurati<strong>on</strong> decisi<strong>on</strong> message. <strong>QoS</strong> Broker->AR<br />

Even if <strong>the</strong> creati<strong>on</strong> of <strong>the</strong> traffic c<strong>on</strong>trol tree has been carried out with success or if not, <strong>the</strong> Router<br />

communicates it to <strong>the</strong> <strong>QoS</strong> Broker (Fig. 35) with <strong>the</strong> following “C<strong>on</strong>figurati<strong>on</strong> <str<strong>on</strong>g>Report</str<strong>on</strong>g>” message – Figure<br />

34.:<br />

<br />

<br />

<br />

Ver 1 Flg 1 Op. Code 3 Client Type: 0xFF02<br />

Message length: 24 (bytes)<br />

Object length: 8 C-Num 1 C-Type 1<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 0x00000000<br />

Object length: 8 C-Num 12 C-Type 1<br />

<str<strong>on</strong>g>Report</str<strong>on</strong>g>-Type: 1 or 2<br />

0x0000<br />

Figure 34: COPS c<strong>on</strong>figurati<strong>on</strong> report message. AR -> <strong>QoS</strong> Broker<br />

In this message we can see how <strong>the</strong> ‘solicited message flag’ is enabled in <strong>the</strong> COPS comm<strong>on</strong> header.<br />

Reference is also made to <strong>the</strong> signaling h<str<strong>on</strong>g>and</str<strong>on</strong>g>le (0) <str<strong>on</strong>g>and</str<strong>on</strong>g> in <strong>the</strong> ‘<str<strong>on</strong>g>Report</str<strong>on</strong>g>-Type’ object <strong>the</strong> router tells <strong>the</strong> <strong>QoS</strong><br />

Broker if it was able to create with success <strong>the</strong> <strong>QoS</strong> queues (<str<strong>on</strong>g>Report</str<strong>on</strong>g>-Type = 1) or not (<str<strong>on</strong>g>Report</str<strong>on</strong>g>-Type = 2).<br />

In <strong>the</strong> last case, our Router would close <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> with <strong>the</strong> corresp<strong>on</strong>ding “Client-Close” message<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> error code ‘8’ (client failure).<br />

If everything works out with success, <str<strong>on</strong>g>and</str<strong>on</strong>g> after sending an affirmative 'C<strong>on</strong>figurati<strong>on</strong> <str<strong>on</strong>g>Report</str<strong>on</strong>g>’, <strong>the</strong> AR<br />

initialises <strong>the</strong> shared memory segment with <strong>the</strong> traffic capturer <str<strong>on</strong>g>and</str<strong>on</strong>g> it begins to listen to traffics.<br />

CEC Deliverable Number D0202 39 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

C<strong>on</strong>fig Request<br />

<strong>QoS</strong> Broker<br />

C<strong>on</strong>fig Decisi<strong>on</strong><br />

C<strong>on</strong>fig <str<strong>on</strong>g>Report</str<strong>on</strong>g><br />

Access<br />

Router<br />

Figure 35: COPS c<strong>on</strong>figurati<strong>on</strong> sequence<br />

4.1.3 Resource allocati<strong>on</strong> dialogue<br />

This dialogue takes place when <strong>the</strong> Router observes an exiting traffic going from <strong>the</strong> access interface to<br />

<strong>the</strong> core interface that is not in its authorizati<strong>on</strong> table or when <strong>the</strong> lifetime of a previously installed traffic<br />

has expired.<br />

It also takes place when <strong>the</strong> Router observes an exiting traffic going from <strong>the</strong> core interface to <strong>the</strong> access<br />

interface. In this case, no authorizati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>figurati<strong>on</strong> of a token bucket is needed, this dialog is just to<br />

inform <strong>the</strong> <strong>QoS</strong> Broker about that traffic.<br />

The Router, in those cases, must generate a ‘Resource Allocati<strong>on</strong> Request’ message for <strong>the</strong> captured<br />

traffic asking <strong>the</strong> Broker whe<strong>the</strong>r to put this traffic in a token bucket (whose parameters are specified by<br />

<strong>the</strong> <strong>QoS</strong> Broker) or to block it. For that, it sends to <strong>the</strong> <strong>QoS</strong> Broker a ‘Request’ message specifying: <strong>the</strong><br />

existing interface of <strong>the</strong> traffic (Out Interface object), <strong>the</strong> traffic source <str<strong>on</strong>g>and</str<strong>on</strong>g> destinati<strong>on</strong> address <str<strong>on</strong>g>and</str<strong>on</strong>g> its<br />

DSCP (ClientSI object). The “Resource Allocati<strong>on</strong> Request” message is <strong>the</strong> next <strong>on</strong>e (Fig. 36):<br />

<br />

Ver 1 Flg 0 Op. code 1 Client Type: 0xFF02<br />

Message length: 88 (bytes)<br />

<br />

Object length: 8 C-Num 1 C-Type 1<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le<br />

R-Type 2 M-Type<br />

Object length: 24 C-Num 4 C-Type 2<br />

<br />

Struct in6_addr sender = ::1<br />

int ifindex<br />

Object length: 40 C-Num 9 C-Type 20<br />

struct in6_addr ‘source_addr’ (16 bytes = 128 bits)<br />

<br />

struct in6_addr ‘dest_addr’ (16 bytes = 128 bits)<br />

DSCP<br />

Padding: 0x000000<br />

Figure 36: COPS resource allocati<strong>on</strong> request message. AR-><strong>QoS</strong> Broker<br />

CEC Deliverable Number D0202 40 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

We can observe how <strong>the</strong> captured parameters have been introduced in a ‘ClientSI’ object. The two<br />

m<str<strong>on</strong>g>and</str<strong>on</strong>g>atory upper objects are <strong>the</strong> ‘Client H<str<strong>on</strong>g>and</str<strong>on</strong>g>le’, which c<strong>on</strong>tains <strong>the</strong> captured c<strong>on</strong>necti<strong>on</strong> h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

‘C<strong>on</strong>text’ object, which will inform <strong>the</strong> <strong>QoS</strong> Broker that this message is a ‘Resource Allocati<strong>on</strong> Request’<br />

by using its ‘R-Type’ field. Following <strong>the</strong>se objects, <strong>the</strong> ‘Out Interface’ informs <strong>the</strong> <strong>QoS</strong> Broker about <strong>the</strong><br />

traffic’ outgoing interface. Let us recall that <strong>the</strong> ‘h<str<strong>on</strong>g>and</str<strong>on</strong>g>le’ identifies a state installed <strong>on</strong> <strong>the</strong> Router, so here<br />

it is provisi<strong>on</strong>al.<br />

Once <strong>the</strong> <strong>QoS</strong> Broker receives <str<strong>on</strong>g>and</str<strong>on</strong>g> decodes <strong>the</strong> message, it checks if <strong>the</strong> AAAC.f previously installed <strong>the</strong><br />

traffic <strong>the</strong> Router is requesting for. If <strong>the</strong> traffic is installed in <strong>the</strong> <strong>QoS</strong> Broker, it sends <strong>the</strong> Router an<br />

affirmative decisi<strong>on</strong> message. O<strong>the</strong>rwise <strong>the</strong> decisi<strong>on</strong> will be negative. The “Affirmative Resource<br />

Allocati<strong>on</strong> Decisi<strong>on</strong>” message is <strong>the</strong> following <strong>on</strong>e (Fig 37):<br />

<br />

<br />

<br />

<br />

<br />

Ver 1 Flg 0 Op. Code 2 Client Type: 0xFF01<br />

Message length: 44 (bytes)<br />

Object length: 8 C-Num 1 C-Type 1<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le<br />

Object length: 8 C-Num 2 C-Type 1<br />

R-Type 2<br />

M-Type<br />

Object length: 8 C-Num 6 C-Type 1<br />

Comm<str<strong>on</strong>g>and</str<strong>on</strong>g> code: 1 Flags : 0 or 2<br />

Object length: 12 C-Num 6 C-Type 4<br />

unsigned int BW_policer (kbps)<br />

unsigned int burst_policer (Bytes)<br />

Figure 37: COPS affirmative resource allocati<strong>on</strong> decisi<strong>on</strong> message. <strong>QoS</strong> Broker->AR<br />

The “Negative Resource Allocati<strong>on</strong> Decisi<strong>on</strong>” message is defined in Figure 38:<br />

<br />

<br />

<br />

<br />

Ver 1 Flg 0 Op. Code 2 Client Type: 0xFF01<br />

Message length: 32 (bytes)<br />

Object length: 8 C-Num 1 C-Type 1<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le<br />

Object length: 8 C-Num 2 C-Type 1<br />

R-Type 2<br />

M-Type<br />

Object length: 8 C-Num 6 C-Type 1<br />

Comm<str<strong>on</strong>g>and</str<strong>on</strong>g> code: 2 Flags : 0 or 2<br />

Figure 38: COPS negative resource allocati<strong>on</strong> decisi<strong>on</strong> message. <strong>QoS</strong> Broker->AR<br />

Note that, in <strong>the</strong>se messages, <strong>the</strong> ‘h<str<strong>on</strong>g>and</str<strong>on</strong>g>le’ value must be <strong>the</strong> same that <strong>the</strong> <strong>on</strong>e in <strong>the</strong> Request message.<br />

In both messages, <strong>the</strong> ‘Decisi<strong>on</strong> Flags’ object indicates to <strong>the</strong> Router two important things. The first <strong>on</strong>e<br />

is that it should or not install a filter/policer to provide <strong>QoS</strong> to <strong>the</strong> traffic according to its DSCP; this is<br />

indicated in <strong>the</strong> ‘comm<str<strong>on</strong>g>and</str<strong>on</strong>g> code’ field with a ‘1’ for yes <str<strong>on</strong>g>and</str<strong>on</strong>g> a ‘2’ for no. The main difference between an<br />

affirmative <str<strong>on</strong>g>and</str<strong>on</strong>g> a negative message is <strong>the</strong> ‘Decisi<strong>on</strong> ClientSI data’ object. If <strong>the</strong> traffic is installed in <strong>the</strong><br />

<strong>QoS</strong> Broker, it sends <strong>the</strong> Router –in that object– <strong>the</strong> token-bucket policer parameters: b<str<strong>on</strong>g>and</str<strong>on</strong>g>width (in kbps)<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> burst (in bytes, > MTU). It obtains <strong>the</strong>se parameters from <strong>the</strong> politics table <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>y can differ for<br />

each traffic, although <strong>the</strong>y are filtered towards <strong>the</strong> same queue discipline.<br />

The sec<strong>on</strong>d characteristic of <strong>the</strong> ‘Decisi<strong>on</strong> Flags’ object is that <strong>the</strong> ‘Flags’ field may indicate that <strong>the</strong><br />

Router has to request <strong>the</strong> <strong>QoS</strong> Broker a <strong>QoS</strong> queues c<strong>on</strong>figurati<strong>on</strong> again. When set to ‘0’, this field<br />

CEC Deliverable Number D0202 41 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

indicates that <strong>the</strong> Router should c<strong>on</strong>tinue with its current queues. When set to ‘2’, <strong>the</strong> Router must redo<br />

<strong>the</strong> COPS c<strong>on</strong>figurati<strong>on</strong> sequence seen in a previous secti<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> apply <strong>the</strong>m (rec<strong>on</strong>figurati<strong>on</strong>).<br />

Once <strong>the</strong> Access Router has received <str<strong>on</strong>g>and</str<strong>on</strong>g> decoded a ‘Resource Allocati<strong>on</strong> decisi<strong>on</strong>’ message, it proceeds<br />

to install/actualize or remove a TC API filter/policer towards its associated queue. Even if <strong>the</strong> Router is<br />

able to process <strong>the</strong> <strong>QoS</strong> Broker decisi<strong>on</strong> or if not, it must send a ‘Resource allocati<strong>on</strong> <str<strong>on</strong>g>Report</str<strong>on</strong>g>’ message to<br />

inform <strong>the</strong> <strong>QoS</strong> Broker about <strong>the</strong> Decisi<strong>on</strong> implementati<strong>on</strong> state. The ‘Resource allocati<strong>on</strong> <str<strong>on</strong>g>Report</str<strong>on</strong>g>’<br />

message is defined in Figure 39:<br />

<br />

<br />

<br />

Ver 1 Flg 1 Op. Code 3 Client Type: 0xFF02<br />

Message length: 24 (bytes)<br />

Object length: 8 C-Num 1 C-Type 1<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le<br />

Object length: 8 C-Num 12 C-Type 1<br />

<str<strong>on</strong>g>Report</str<strong>on</strong>g>-Type: 1 or 2<br />

0x0000<br />

Figure 39: COPS Resource allocati<strong>on</strong> <str<strong>on</strong>g>Report</str<strong>on</strong>g> message. AR-><strong>QoS</strong> Broker<br />

The ‘h<str<strong>on</strong>g>and</str<strong>on</strong>g>le’ identifies <strong>the</strong> referenced state <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> ‘<str<strong>on</strong>g>Report</str<strong>on</strong>g>-Type’ informs <strong>the</strong> <strong>QoS</strong> Broker if <strong>the</strong> decisi<strong>on</strong><br />

has worked out (1) or not (2). If <strong>the</strong> decisi<strong>on</strong> fails, <strong>the</strong> COPS c<strong>on</strong>necti<strong>on</strong> will be close with an error<br />

message <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> router will terminate its operati<strong>on</strong>.<br />

In <strong>the</strong> following graph (Fig. 40) we can see <strong>the</strong> messages sequence that forms a resource allocati<strong>on</strong><br />

dialogue when, in <strong>the</strong> answer, <strong>the</strong> ‘rec<strong>on</strong>figurati<strong>on</strong> flag’ value is ‘2’. In case it is ‘0’, <strong>on</strong>ly <strong>the</strong> three first<br />

messages will be sent:<br />

R.A. Request<br />

R.A. Decisi<strong>on</strong><br />

R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g><br />

<strong>QoS</strong> Broker<br />

C<strong>on</strong>fig Request<br />

C<strong>on</strong>fig<br />

Access<br />

Router<br />

C<strong>on</strong>fig <str<strong>on</strong>g>Report</str<strong>on</strong>g><br />

Figure 40: Resource allocati<strong>on</strong> sequence with rec<strong>on</strong>figurati<strong>on</strong><br />

4.1.4 Queues state report<br />

As we saw in previous secti<strong>on</strong>s, when <strong>the</strong> Router starts up, it obtains, in <strong>the</strong> ‘Client-Accept’ message, <strong>the</strong><br />

accounting report timer value (AcctTimer). This counter is used in <strong>the</strong> Router to know how much time it<br />

has to wait until asking <strong>the</strong> TC API for statistics, <str<strong>on</strong>g>and</str<strong>on</strong>g> to generate an ‘Accounting <str<strong>on</strong>g>Report</str<strong>on</strong>g>’ message to <strong>the</strong><br />

<strong>QoS</strong> Broker. A ‘0’ value in <strong>the</strong> ‘AcctTimer’ means that this type of message must not be sent. The<br />

accounting value is specified in sec<strong>on</strong>ds.<br />

This message is a typical ‘<str<strong>on</strong>g>Report</str<strong>on</strong>g>’ message to which are added so many ‘ClientSI’ objects as GRED<br />

queues disciplines exist plus ano<strong>the</strong>r ‘ClientSI’ object with <strong>the</strong> parent CBQ queue discipline statistics.<br />

Once explained <strong>the</strong> ‘ClientSI’ c<strong>on</strong>tent, we just have to draw <strong>the</strong> COPS ‘Accounting <str<strong>on</strong>g>Report</str<strong>on</strong>g>’ message (Fig.<br />

41):<br />

<br />

Ver 1 Flg 1 Op. Code 3 Client Type: 0xFF02<br />

Message length: 24·(N+1) (bytes)<br />


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le Obj.><br />

<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 0x00000000<br />

Object length: 8 C-Num 12 C-Type 1<br />

<str<strong>on</strong>g>Report</str<strong>on</strong>g>-Type: 3<br />

0x0000<br />

Object length: 24 C-Num 9 C-Type 21<br />

#1<br />

struct account_data #1 ‘statistics’ (20 bytes)<br />

. . . . . .<br />

Object length: 24 C-Num 9 C-Type 21<br />

#N<br />

struct account_data #N ‘statistics’ (20 bytes)<br />

Figure 41: COPS Accounting <str<strong>on</strong>g>Report</str<strong>on</strong>g> message. AR-><strong>QoS</strong> Broker<br />

In this message it is necessary to highlight <strong>the</strong> use of <strong>the</strong> ‘signaling h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler’ (‘0’) <str<strong>on</strong>g>and</str<strong>on</strong>g> how <strong>the</strong> ‘<str<strong>on</strong>g>Report</str<strong>on</strong>g>-<br />

Type’ field of <strong>the</strong> ‘<str<strong>on</strong>g>Report</str<strong>on</strong>g>-Type’ object c<strong>on</strong>tains <strong>the</strong> number ‘3’ indicating that this is a ‘Accounting<br />

report’ message.<br />

Queues state report sequence:<br />

<strong>QoS</strong> Broker<br />

Accounting<br />

Access<br />

Router<br />

Figure 42: Queues state report sequence<br />

4.1.5 FHO c<strong>on</strong>text transfer from <strong>the</strong> old Access Router to <strong>the</strong> <strong>QoS</strong> Broker<br />

During a FHO, <strong>the</strong> old access router has to inform <strong>the</strong> <strong>QoS</strong> Broker that a user is going to move to ano<strong>the</strong>r<br />

AR <str<strong>on</strong>g>and</str<strong>on</strong>g> free its local <strong>QoS</strong> c<strong>on</strong>figurati<strong>on</strong>. Later <strong>the</strong> <strong>QoS</strong> Broker pushes <strong>the</strong> <strong>QoS</strong> c<strong>on</strong>figurati<strong>on</strong> to <strong>the</strong> new<br />

access router.<br />

The communicati<strong>on</strong> between <strong>the</strong> old AR <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> <strong>QoS</strong> Broker is based <strong>on</strong> a new COPS <str<strong>on</strong>g>Report</str<strong>on</strong>g> message<br />

called ‘Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Over <str<strong>on</strong>g>Report</str<strong>on</strong>g>’ message. This message is an unidirecti<strong>on</strong>al report message.<br />

The ‘Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Over <str<strong>on</strong>g>Report</str<strong>on</strong>g>’ message is as in Fig. 43:<br />

<br />

Ver 1 Flg 1 Op. Code 3 Client Type: 0xFF02<br />

Message length: 76 (bytes)<br />


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le Obj.><br />

<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 0x00000000<br />

Object length: 8 C-Num 12 C-Type 1<br />

<str<strong>on</strong>g>Report</str<strong>on</strong>g>-Type: 4<br />

0x0000<br />

Object length: 52 C-Num 9 C-Type 22<br />

<br />

Struct FHO_data (48 bytes)<br />

Figure 43: COPS Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Over <str<strong>on</strong>g>Report</str<strong>on</strong>g> message. oldAR-><strong>QoS</strong> Broker<br />

In this message it is necessary to highlight <strong>the</strong> use of <strong>the</strong> ‘signaling h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler’ (‘0’) <str<strong>on</strong>g>and</str<strong>on</strong>g> how <strong>the</strong> ‘<str<strong>on</strong>g>Report</str<strong>on</strong>g>-<br />

Type’ field of <strong>the</strong> ‘<str<strong>on</strong>g>Report</str<strong>on</strong>g>-Type’ object c<strong>on</strong>tains <strong>the</strong> number ‘4’ indicating that this is a ‘Fast-Over report’<br />

message. The previous structure is encapsulated in a ‘ClientSI’ object with C-Type = 22.<br />

This message is <strong>on</strong>ly sent when <strong>the</strong> MIP module interrupts <strong>the</strong> <strong>QoS</strong> Manager informing it about a user’s<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Over.<br />

The current mobility sequence is shown below in Figure 44:<br />

<strong>QoS</strong> Broker<br />

Fast-HO <str<strong>on</strong>g>Report</str<strong>on</strong>g><br />

Old Access<br />

Router<br />

Figure 44: Current mobility sequence<br />

We recall that <strong>the</strong> message sent form <strong>the</strong> <strong>QoS</strong> Broker to <strong>the</strong> new Access Router must still to be<br />

implemented.<br />

4.1.6 FHO <strong>QoS</strong> C<strong>on</strong>text transfer from <strong>the</strong> <strong>QoS</strong> Broker to <strong>the</strong> new AR (nAR)<br />

When <strong>the</strong> <strong>QoS</strong> Broker receives <strong>the</strong> message described in <strong>the</strong> previous secti<strong>on</strong>, it processes that petiti<strong>on</strong><br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> pushes to <strong>the</strong> new access router <strong>the</strong> result of it. If <strong>the</strong> new AR is not <strong>on</strong> <strong>the</strong> <strong>QoS</strong> Broker domain<br />

network, <strong>the</strong> old <strong>QoS</strong> Broker must pass all user’s c<strong>on</strong>figurati<strong>on</strong> towards <strong>the</strong> new <strong>QoS</strong> Broker <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>n this<br />

last <strong>on</strong>e will push <strong>the</strong> FHO result to <strong>the</strong> new AR. The FHO decisi<strong>on</strong> pushed to <strong>the</strong> nAR can indicate three<br />

different things:<br />

• Affirmative FHO message including all user’s traffics <str<strong>on</strong>g>and</str<strong>on</strong>g> policing parameters.<br />

• Affirmative FHO message without informati<strong>on</strong> (<strong>on</strong>ly for advertising <strong>the</strong> FHO module)<br />

• Negative FHO message. The FHO could not be realized.<br />

If we are in <strong>the</strong> first case, <strong>the</strong> <strong>QoS</strong>Broker will push towards <strong>the</strong> nAR all user’s traffics related, i.e. source<br />

address (CoA), destinati<strong>on</strong> addresses, DSCPs <str<strong>on</strong>g>and</str<strong>on</strong>g> policing informati<strong>on</strong>. The message used to transfer this<br />

CEC Deliverable Number D0202 44 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

informati<strong>on</strong> will be an unsolicited ‘Decisi<strong>on</strong> message’ c<strong>on</strong>taining as many of <strong>the</strong> following structures as<br />

client’s traffics are moved:<br />

struct FHO_U_DEC_data {<br />

unsigned int BW_policer;<br />

unsigned int Burst_policer;<br />

struct in6_addr source_addr;<br />

struct in6_addr dest_addr;<br />

unsigned char dscp;<br />

};<br />

We can see in <strong>the</strong> C structure <strong>the</strong> menti<strong>on</strong>ed fields. The structure size is 41 bytes so padding is needed.<br />

All this informati<strong>on</strong> will be encapsulated in a ‘Decisi<strong>on</strong> ClientSI data’ object.<br />

The ‘Affirmative Unsolicited Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Over Decisi<strong>on</strong>’ message with data will be <strong>the</strong> following <strong>on</strong>e –<br />

Fig. 45:<br />

<br />

<br />

Ver 1 Flg 0 Op. Code 2 Client Type: 0xFF01<br />

Message length: 32+48N (bytes)<br />

Object length: 8 C-Num 1 C-Type 1<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 0 (signaling)<br />

R-Type 16 M-Type<br />

<br />

Object length: 8 C-Num 6 C-Type 1<br />

Comm<str<strong>on</strong>g>and</str<strong>on</strong>g> code: 1 Flags: 0<br />

Object length: 48 C-Num 6 C-Type 4<br />

unsigned int BW_policer (kbps)<br />

unsigned int burst_policer (Bytes)<br />

<br />

struct in6_addr ‘source_addr’ (16 bytes = 128 bits)<br />

struct in6_addr ‘dest_addr’ (16 bytes = 128 bits)<br />

DSCP<br />

Padding: 0x000000<br />

. . .<br />

. . .<br />

<br />

Object length: 48 C-Num 6 C-Type 4<br />

unsigned int BW_policer (kbps)<br />

unsigned int burst_policer (Bytes)<br />

struct in6_addr ‘source_addr’ (16 bytes = 128 bits)<br />

CEC Deliverable Number D0202 45 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

struct in6_addr ‘dest_addr’ (16 bytes = 128 bits)<br />

DSCP<br />

Padding: 0x000000<br />

Figure 45 COPS Affirmative Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>over Unsolicited Decisi<strong>on</strong> message with data.<br />

<strong>QoS</strong> Broker->new AR<br />

In this message it is important to highlight <strong>the</strong> use of <strong>the</strong> ‘signaling h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler’ (‘0’) <str<strong>on</strong>g>and</str<strong>on</strong>g> how <strong>the</strong> ‘R-Type’<br />

field <strong>on</strong> <strong>the</strong> ‘C<strong>on</strong>text’ object c<strong>on</strong>tains <strong>the</strong> number ‘16’ indicating that this is a ‘Fast-Over decisi<strong>on</strong>’<br />

message. The nAR will determine that this is an affirmative message with data based <strong>on</strong> <strong>the</strong> ‘comm<str<strong>on</strong>g>and</str<strong>on</strong>g><br />

code’ field, here it will be ‘2’ (Install traffics). The previous data structure is encapsulated in a ‘ClientSI<br />

Decisi<strong>on</strong> data’ object.<br />

Once <strong>the</strong> nAR has decoded <strong>the</strong> last message, it tries to install in its core interface all <strong>the</strong> traffics that <strong>the</strong><br />

<strong>QoS</strong>Broker has comm<str<strong>on</strong>g>and</str<strong>on</strong>g>ed to do. In order to report <strong>the</strong> Broker about <strong>the</strong> traffics’ h<str<strong>on</strong>g>and</str<strong>on</strong>g>lers <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

implementati<strong>on</strong> states, <strong>the</strong> router sends as many ‘Resource Allocati<strong>on</strong> <str<strong>on</strong>g>Report</str<strong>on</strong>g>’ messages as traffics are<br />

installed <str<strong>on</strong>g>and</str<strong>on</strong>g> by installati<strong>on</strong> order. The RA <str<strong>on</strong>g>Report</str<strong>on</strong>g> message was defined in secti<strong>on</strong> 2.3.<br />

If we are in <strong>the</strong> sec<strong>on</strong>d case, <strong>the</strong> <strong>QoS</strong>Broker will <strong>on</strong>ly push towards <strong>the</strong> nAR an unsolicited ‘Decisi<strong>on</strong><br />

message’ c<strong>on</strong>taining no client data. This occurs when <strong>the</strong> FHO is d<strong>on</strong>e correctly but no traffics are<br />

transferred towards <strong>the</strong> nAR (because <strong>the</strong> MT is <strong>on</strong> st<str<strong>on</strong>g>and</str<strong>on</strong>g>by). The aim of this event is to inform <strong>the</strong> FHO<br />

module about a correct transfer.<br />

The ‘Affirmative Unsolicited Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Over Decisi<strong>on</strong>’ message without data will be <strong>the</strong><br />

following <strong>on</strong>e – Fig. 46.:<br />

<br />

<br />

Ver 1 Flg 0 Op. Code 2 Client Type: 0xFF01<br />

Message length: 32+48N (bytes)<br />

Object length: 8 C-Num 1 C-Type 1<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 0 (signaling)<br />

<br />

Object length: 8 C-Num 2 C-Type 1<br />

R-Type 16<br />

M-Type<br />

Comm<str<strong>on</strong>g>and</str<strong>on</strong>g> code: 0 Flags: 0<br />

Figure 46: Affirmative Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Over Unsolicited Decisi<strong>on</strong> message without data. <strong>QoS</strong>Broker-<br />

>newAR<br />

The nAR will determine that this is an affirmative FHO message without data based <strong>on</strong> <strong>the</strong> ‘comm<str<strong>on</strong>g>and</str<strong>on</strong>g><br />

code’ field <strong>on</strong> <strong>the</strong> ‘Decisi<strong>on</strong> Flags’ object, here it will be ‘0’ (no c<strong>on</strong>figurati<strong>on</strong> data available). The router<br />

will send a ‘C<strong>on</strong>figurati<strong>on</strong> Resource Allocati<strong>on</strong> <str<strong>on</strong>g>Report</str<strong>on</strong>g>’ message if <strong>the</strong> decisi<strong>on</strong> has worked out (code 1)<br />

or not (code 2). The RA <str<strong>on</strong>g>Report</str<strong>on</strong>g> message was defined in secti<strong>on</strong> 2.2.<br />

If we are in <strong>the</strong> third case, <strong>the</strong> <strong>QoS</strong>Broker will push towards <strong>the</strong> nAR an unsolicited ‘Decisi<strong>on</strong> message’<br />

c<strong>on</strong>taining a code that indicates to <strong>the</strong> router that <strong>the</strong> FHO could not be realized. No client data is pushed.<br />

This occurs when <strong>the</strong> FHO is in error or is not authorized. The aim of this event is to inform <strong>the</strong> FHO<br />

module about a incorrect transfer.<br />

The ‘Negative Unsolicited Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Over Decisi<strong>on</strong>’ message is in Figure 47:<br />


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

header><br />

<br />

<br />

<br />

Message length: 32+48N (bytes)<br />

Object length: 8 C-Num 1 C-Type 1<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 0 (signaling)<br />

Object length: 8 C-Num 2 C-Type 1<br />

R-Type 16<br />

M-Type<br />

Object length: 8 C-Num 6 C-Type 1<br />

Comm<str<strong>on</strong>g>and</str<strong>on</strong>g> code: 2 Flags: 0<br />

Figure 47 Negative Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Over Unsolicited Decisi<strong>on</strong> message. <strong>QoS</strong>Broker->newAR<br />

The nAR will determine that this is a negative FHO message based <strong>on</strong> <strong>the</strong> ‘comm<str<strong>on</strong>g>and</str<strong>on</strong>g> code’ field <strong>on</strong> <strong>the</strong><br />

‘Decisi<strong>on</strong> Flags’ object, here it will be ‘2’ (reject). The router will send a ‘C<strong>on</strong>figurati<strong>on</strong> Resource<br />

Allocati<strong>on</strong> <str<strong>on</strong>g>Report</str<strong>on</strong>g>’ message if <strong>the</strong> decisi<strong>on</strong> has worked out (code 1) or not (code 2). The RA <str<strong>on</strong>g>Report</str<strong>on</strong>g><br />

message was defined in secti<strong>on</strong> 2.2.<br />

Al <strong>the</strong>se messages are <strong>on</strong>ly received when <strong>the</strong> MIP module interrupts <strong>the</strong> nAR’s <strong>QoS</strong>Manager informing<br />

it about a user’s H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Over.<br />

If we have an affirmative FHO with client data, we can see in Figure 48 its sequence:<br />

<strong>QoS</strong>Broker<br />

Fast-HO Decisi<strong>on</strong><br />

RA <str<strong>on</strong>g>Report</str<strong>on</strong>g>s...<br />

new Access<br />

Router<br />

Figure 48 FHO <strong>QoS</strong> c<strong>on</strong>text transfer from <strong>QoS</strong>B to nAR<br />

4.1.7 C<strong>on</strong>necti<strong>on</strong> check dialogue<br />

As we saw, when <strong>the</strong> Router starts up it obtains, in <strong>the</strong> ‘Client-Accept’ message that <strong>the</strong> <strong>QoS</strong> Broker<br />

sends to it, <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> check timer value: ‘KATimer’. This value is used in <strong>the</strong> router to c<strong>on</strong>trol <strong>the</strong><br />

generati<strong>on</strong> of ‘Keep-Alive’ messages. They are sent r<str<strong>on</strong>g>and</str<strong>on</strong>g>omly between ¼ <str<strong>on</strong>g>and</str<strong>on</strong>g> ¾ of <strong>the</strong> ‘KATimer’<br />

(counting time since <strong>the</strong> last message was sent). A ‘0’ value indicates that <strong>the</strong>se messages are not used.<br />

The timer value is specified in sec<strong>on</strong>ds. The “Keep-Alive” message is shown in Figure 49:<br />

<br />

Ver 1 Flg 0 Op. Code 9 Client Type: 0x0000<br />

Message length: 8 (bytes)<br />

Figure 49: COPS Keep-alive message. AR-><strong>QoS</strong> Broker <str<strong>on</strong>g>and</str<strong>on</strong>g> its reply.<br />

This simple message is <strong>the</strong> <strong>on</strong>e that <strong>the</strong> client should generate <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> PDP should resp<strong>on</strong>d with <strong>the</strong> same<br />

message. It is important to emphasize that <strong>the</strong> ‘client type’ field in <strong>the</strong> header must be ‘0’.<br />

If <strong>the</strong> server doesn't receive a ‘Keep-Alive’ message after <strong>the</strong> ‘KATimer’ time, it c<strong>on</strong>siders a client hangs<br />

up <str<strong>on</strong>g>and</str<strong>on</strong>g> it closes <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> sending a ‘Client-Close’ message before. If <strong>the</strong> PEP doesn't receive <strong>the</strong><br />

‘Keep-alive’ echo of a message that it sent, it does <strong>the</strong> same things that <strong>the</strong> server does: send a ‘Client-<br />

Close’ with <strong>the</strong> corresp<strong>on</strong>ding error code <str<strong>on</strong>g>and</str<strong>on</strong>g> close <strong>the</strong> c<strong>on</strong>necti<strong>on</strong>.<br />

CEC Deliverable Number D0202 47 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Here is <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> check dialogue sequence – figure 50:<br />

Keep-ALive<br />

<strong>QoS</strong> Broker<br />

Keep-Alive<br />

Access<br />

Router<br />

Figure 50: COPS C<strong>on</strong>necti<strong>on</strong> integrity check<br />

4.1.8 Closing COPS c<strong>on</strong>necti<strong>on</strong><br />

Programs must send <strong>the</strong> message that we will see next, close <strong>the</strong> TCP/IPv6 c<strong>on</strong>necti<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> end its<br />

executi<strong>on</strong> when <strong>on</strong>e of <strong>the</strong> following problem occurs: program abrupt terminati<strong>on</strong> (Ctrl-C), error during<br />

c<strong>on</strong>necti<strong>on</strong>/executi<strong>on</strong>, bad COPS message, Keep-alive temporizati<strong>on</strong> failure, etc.<br />

The ‘Client-Close’ message does not bel<strong>on</strong>g to any sequence. It can be sent at any time by any program<br />

(PDP or PEP). As <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> is closed after sending <strong>the</strong> message, <strong>the</strong> o<strong>the</strong>r program can not send<br />

messages thru <strong>the</strong> socket. If <strong>on</strong>e tries to send a message it gets a c<strong>on</strong>necti<strong>on</strong> failure <str<strong>on</strong>g>and</str<strong>on</strong>g> ends.<br />

The ‘Client-Close’ message is <strong>the</strong> following <strong>on</strong>e – Figure 51:<br />

<br />

<br />

Ver 1 Flg 0 Op. Code 8 Client Type: 0xFF0X<br />

Message length: 16 (bytes)<br />

Object length: 8 C-Num 8 C-Type 1<br />

Error code: X Error Sub-code: 0<br />

Figure 51: COPS Client-Close message. AR<strong>QoS</strong> Broker<br />

In <strong>the</strong> message, <strong>the</strong> ‘Client-Type’ field (in <strong>the</strong> COPS header) is filled with <strong>the</strong> sender code. Inside <strong>the</strong><br />

error object is placed <strong>the</strong> error code informing <strong>the</strong> o<strong>the</strong>r client why <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> is going to be closed.<br />

In <strong>the</strong> next figure we show how to close a COPS c<strong>on</strong>necti<strong>on</strong>. Note that it is unidirecti<strong>on</strong>al. We represent<br />

that in Figue 52:<br />

<strong>QoS</strong> Broker<br />

Client-Close<br />

Access<br />

Router<br />

<strong>QoS</strong> Broker<br />

Client-Close<br />

Access<br />

Router<br />

Figure 52: Closing COPS c<strong>on</strong>necti<strong>on</strong><br />

CEC Deliverable Number D0202 48 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

4.2 Signaling between <strong>the</strong> <strong>QoS</strong>B.f <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> AAAC.f<br />

We list now <strong>the</strong> COPS messages exchanged between <strong>the</strong> AAAC.f (which acts as a COPS client) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

<strong>QoS</strong>B.f (which acts as a COPS server).<br />

To open <strong>the</strong> COPS c<strong>on</strong>necti<strong>on</strong> COPS Client-Open <str<strong>on</strong>g>and</str<strong>on</strong>g> Client-Accept messages without opti<strong>on</strong>al COPS<br />

objects are exchanged. The AAAC server client type is 65283 (in decimal).<br />

To close <strong>the</strong> COPS c<strong>on</strong>necti<strong>on</strong> a COPS ClientClose Message is sent without opti<strong>on</strong>al COPS objects.<br />

To send <strong>the</strong> NetServices Descripti<strong>on</strong> to <strong>the</strong> <strong>QoS</strong>B.f a REQuest message is sent with opti<strong>on</strong>al cops<br />

“Client Specific Informati<strong>on</strong> Objects”. The format of <strong>the</strong>se objects (<str<strong>on</strong>g>and</str<strong>on</strong>g> of <strong>the</strong> entire REQuest message) is<br />

given below. The <strong>QoS</strong>B.f answers to this message with a DECissi<strong>on</strong> message without opti<strong>on</strong>al COPS<br />

objects.<br />

The format of <strong>the</strong> REQuest message (fields length is in bytes) is in <strong>the</strong> following Figure 53:<br />

<br />

<br />

<br />

#1<br />

Ver 1 Flg 0 Op. code 1 Client Type: 0xFF03<br />

Message length: 52+N*28 (bytes)<br />

Object length: 8 C-Num 1 C-Type 1<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le<br />

Object length: 8 C-Num 2 C-Type 1<br />

R-Type 2<br />

M-Type<br />

Object length: 28 C-Num 9 C-Type 131<br />

Struct in6_addr dest. Addr.<br />

BW<br />

Burst Size<br />

priority DSCP Padding 00 00<br />

Object length: 28 C-Num 9 C-Type 131<br />

#N<br />

struct in6_addr dest. Addr<br />

BW<br />

Burst Size<br />

Priority DSCP Padding 00 00<br />

Figure 53: Closing COPS c<strong>on</strong>necti<strong>on</strong><br />

dest. Addr is set to 0 when it is unused.<br />

To dump <strong>the</strong> NVUP, we send a REPORT STATE message with opti<strong>on</strong>al COPS “Client Specific<br />

Informati<strong>on</strong> Objects”. The format of <strong>the</strong>se objects (<str<strong>on</strong>g>and</str<strong>on</strong>g> of <strong>the</strong> entire REPORT STATE message) is given<br />

below:<br />

Format of <strong>the</strong> REPort message (fields length is in bytes) as in Fig. 54:<br />

<br />


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

TTL<br />

Object length: 24 C-Num 9 C-Type 138<br />

#2<br />

in6_addr dest. Addr<br />

DSCP Padding 00 00 00<br />

Object length: 24 C-Num 9 C-Type 138<br />

#N<br />

in6_addr dest. Addr<br />

DSCP Padding 00 00 00<br />

Figure 54: Closing COPS c<strong>on</strong>necti<strong>on</strong><br />

dest. Addr is set to 0 when it is unused.<br />

5. Tests <str<strong>on</strong>g>and</str<strong>on</strong>g> performances<br />

5.1 <strong>QoS</strong> manager tests<br />

5.1.1 Test c<strong>on</strong>diti<strong>on</strong>s<br />

For <strong>the</strong>se tests we used <strong>the</strong> following scenario (Fig. 55).<br />

escorpi<strong>on</strong>.ipv6 pulga.ipv6 escarabajo.ipv6<br />

garrapata.ipv6<br />

Eth1<br />

Eth1<br />

Eth2<br />

E<strong>the</strong>rnet Access Network<br />

2001:0720:0410:1004::/64<br />

Eth1<br />

Eth1<br />

Core Network (Simulated)<br />

2001:0720:0410:1003::/64<br />

Figure 55: MobyDick <strong>QoS</strong> test scenario<br />

In all machines is used <strong>the</strong> Red Hat Linux 7.1 operating system with a 2.4.16 kernel.<br />

The machines functi<strong>on</strong>ality were <strong>the</strong> following <strong>on</strong>es:<br />

- escorpi<strong>on</strong>.ipv6 (MT): IPv6 traffic generator towards ‘garrapata.ipv6’ in policing tests <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

receptor in <strong>QoS</strong> tests. For policing <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>QoS</strong> tests we used unidirecti<strong>on</strong>al UDP traffic generated<br />

with <strong>the</strong> ‘mgen6’ tool.<br />

- pulga.ipv6 (AR): <strong>QoS</strong> Manager that routed all packets coming from <strong>the</strong> 2001:720:410: 1004::/64<br />

network towards <strong>the</strong> 2001:720:410:1003::/64 network <str<strong>on</strong>g>and</str<strong>on</strong>g> vice versa. It also applied <strong>QoS</strong><br />

queuing <strong>on</strong> its ‘eth2’ interface <str<strong>on</strong>g>and</str<strong>on</strong>g> delegated policing <strong>on</strong> its ‘eth1’ interface.<br />

- escarabajo.ipv6 (AAAC): in this machine resided <strong>the</strong> AAAC.<br />

- garrapata.ipv6 (<strong>QoS</strong> Broker): this machine was <strong>the</strong> transceptor of escorpi<strong>on</strong>’s traffics. It also<br />

ga<strong>the</strong>red some traffic statistics. The <strong>QoS</strong> Broker resided in this machine.<br />

CEC Deliverable Number D0202 50 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Test specificati<strong>on</strong><br />

The test c<strong>on</strong>sisted <strong>on</strong>:<br />

- Verifying <strong>the</strong> correct COPS messages sequence as well as <strong>the</strong>ir integrity with <strong>the</strong> st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard.<br />

- Verifying <strong>the</strong> correct <strong>QoS</strong>/policing c<strong>on</strong>figurati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> implementati<strong>on</strong>.<br />

Before carrying out <strong>the</strong> tests, it was necessary to start up <strong>the</strong> <strong>QoS</strong> Broker in ‘garrapata.ipv6', <strong>the</strong> AAAC in<br />

‘escarabajo.ipv6’ <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> traffic capturer <str<strong>on</strong>g>and</str<strong>on</strong>g> Access Router in ‘pulga.ipv6 '. We had to verify that both<br />

COPS clients had a correct registrati<strong>on</strong> <strong>on</strong> <strong>the</strong> <strong>QoS</strong> Broker, that <strong>the</strong> access router received <strong>the</strong> behaviour<br />

table, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> router installed <strong>the</strong> <strong>QoS</strong> classes <strong>on</strong> its access interface.<br />

5.1.2 COPS sequences <str<strong>on</strong>g>and</str<strong>on</strong>g> st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard compliance tests<br />

For <strong>the</strong>se tests, a complete COPS messages interacti<strong>on</strong> was captured between <strong>the</strong> Router <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> <strong>QoS</strong><br />

Broker. All COPS message parts were validated. The captures were realized with <strong>the</strong> ‘e<strong>the</strong>real’ program<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> router’s program output was copy from an executi<strong>on</strong> in debug mode.<br />

5.1.2.1 Access Router initializati<strong>on</strong><br />

This capture includes two COPS sequences. First a ‘Router Registrati<strong>on</strong>’ <str<strong>on</strong>g>and</str<strong>on</strong>g> later a ‘<strong>QoS</strong> c<strong>on</strong>figurati<strong>on</strong><br />

dialogue’ (Fig. 56).<br />

Figure 56: Access Router initialisati<strong>on</strong> capture<br />

CEC Deliverable Number D0202 51 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

In this sequence, <strong>the</strong> Access Router began <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> with a ‘Client-Open’ sent to <strong>the</strong> <strong>QoS</strong> Broker, to<br />

what it resp<strong>on</strong>ded with a ‘Client-Accept’ in which it sent <strong>the</strong> ‘KATimer’ <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> ‘AcctTimer’. Later, <strong>the</strong><br />

Router requested <strong>the</strong> access interface <strong>QoS</strong> c<strong>on</strong>figurati<strong>on</strong> data in a ‘C<strong>on</strong>figurati<strong>on</strong> Request’ to what <strong>the</strong><br />

<strong>QoS</strong> Broker resp<strong>on</strong>ded it with a ‘C<strong>on</strong>figurati<strong>on</strong> Decisi<strong>on</strong>’ in which it sent <strong>the</strong> <strong>QoS</strong> queues c<strong>on</strong>figurati<strong>on</strong><br />

data. Once <strong>the</strong> Router had tried to apply <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong>, it sent to <strong>the</strong> <strong>QoS</strong> Broker <strong>the</strong> result of it.<br />

All COPS messages <str<strong>on</strong>g>and</str<strong>on</strong>g> objects were revised, being according to <strong>the</strong> st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard (RFC 2748).<br />

In <strong>the</strong> appendix B secti<strong>on</strong> 9.1, <strong>the</strong> printed debug text lines that <strong>the</strong> router prints out <strong>on</strong> an initialisati<strong>on</strong> are<br />

presented.<br />

5.1.2.2 Access Router resource allocati<strong>on</strong><br />

This capture shows <strong>the</strong> ‘Resource Allocati<strong>on</strong>’ COPS sequence. First we can see <strong>the</strong> e<strong>the</strong>real capture (Fig.<br />

57):<br />

Figure 57: Access Router resource allocati<strong>on</strong> capture<br />

In this sequence, <strong>the</strong> capturer program informed <strong>the</strong> router about a new detected traffic. Then, <strong>the</strong> router<br />

requested <strong>the</strong> <strong>QoS</strong> Broker about authorizati<strong>on</strong> for <strong>the</strong> traffic (policing). The ‘Resource allocati<strong>on</strong> request’<br />

message that was generated included <strong>the</strong> traffic’s source <str<strong>on</strong>g>and</str<strong>on</strong>g> destinati<strong>on</strong> addresses <str<strong>on</strong>g>and</str<strong>on</strong>g> its DSCP.<br />

When <strong>the</strong> <strong>QoS</strong> Broker decoded <strong>the</strong> last message, it searched in its list for <strong>the</strong> received traffic. In this<br />

simulati<strong>on</strong> we previously generated a ‘ping6’ traffic from ‘escorpi<strong>on</strong>.ipv6’ to ‘garrapata.ipv6’ <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

installed it in <strong>the</strong> <strong>QoS</strong> Broker. The Broker answered <strong>the</strong> router with an ‘Affirmative Resource Allocati<strong>on</strong><br />

Decisi<strong>on</strong>’ message, thus this message also c<strong>on</strong>tained policing informati<strong>on</strong> in its ‘ClientSI Decisi<strong>on</strong> Data’<br />

object.<br />

When <strong>the</strong> router classified <strong>the</strong> traffic towards <strong>the</strong> class 1:1 <str<strong>on</strong>g>and</str<strong>on</strong>g> applied a token-bucket policer, it reported<br />

<strong>the</strong> <strong>QoS</strong> Broker with <strong>the</strong> TCAPI implementati<strong>on</strong> state. It was d<strong>on</strong>e thru a ‘Resource Allocati<strong>on</strong> <str<strong>on</strong>g>Report</str<strong>on</strong>g>’<br />

Message.<br />

CEC Deliverable Number D0202 52 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

All COPS messages <str<strong>on</strong>g>and</str<strong>on</strong>g> objects were revised, being according to <strong>the</strong> st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard (RFC 2748).<br />

In <strong>the</strong> appendix B secti<strong>on</strong> 9.2 <strong>the</strong> printed debug text lines that <strong>the</strong> router prints out <strong>on</strong> an affirmative<br />

resource allocati<strong>on</strong> sequence are presented.<br />

5.1.2.3 Access Router queues state report<br />

This capture shows <strong>the</strong> Queues state report COPS message. First we can see <strong>the</strong> e<strong>the</strong>real capture (Fig.<br />

58):<br />

Figure 58: Access Router queues report capture<br />

Due to <strong>the</strong> value of <strong>the</strong> ‘AcctTimer’ (20 sec<strong>on</strong>ds here), <strong>the</strong> access router sent periodically to <strong>the</strong> <strong>QoS</strong><br />

Broker ‘Queues state report’ messages for <strong>the</strong> access interface. In <strong>the</strong> captured message we can see four<br />

‘ClientSI’ objects according to <strong>the</strong> four GRED child queues.<br />

The COPS message <str<strong>on</strong>g>and</str<strong>on</strong>g> its objects were revised, being according to RFC 2748.<br />

In <strong>the</strong> appendix B secti<strong>on</strong> 9.3 you can see <strong>the</strong> printed debug text lines that <strong>the</strong> router prints out <strong>on</strong> a<br />

queues state report sequence (Fig. 59).<br />

CEC Deliverable Number D0202 53 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

MobyDick<br />

<strong>QoS</strong> Broker:<br />

garrapata.ipv6<br />

1 FHO<br />

report<br />

2 FHO Uns.<br />

decisi<strong>on</strong><br />

5 <str<strong>on</strong>g>Report</str<strong>on</strong>g>s<br />

4 policed<br />

Traffic(s)<br />

COPS<br />

oldAR:<br />

cucaracha.ipv6<br />

nNewAR:<br />

termita.ipv6<br />

3 Traffic(s)<br />

Figure 59: FHO scenario <str<strong>on</strong>g>and</str<strong>on</strong>g> messages diagram<br />

5.1.2.4 Access Router mobility signaling messages<br />

For this test we have to create a new scenario. A simplified versi<strong>on</strong> appears below.<br />

A mobile terminal sending authorized packets towards ‘garrapata.ipv6’ thru <strong>the</strong> AR cucaracha.ipv6 (old)<br />

performs a h<str<strong>on</strong>g>and</str<strong>on</strong>g>-over to ‘termita.ipv6’ (new).<br />

All <strong>the</strong> policed traffics in use were transferred to <strong>the</strong> newAR via <strong>the</strong> FHO module <str<strong>on</strong>g>and</str<strong>on</strong>g> COPS messages.<br />

The following captures probe all <strong>the</strong> process.<br />

The first capture shows <strong>the</strong> FHO COPS <str<strong>on</strong>g>Report</str<strong>on</strong>g> message. First we can see <strong>the</strong> e<strong>the</strong>real capture in Fig. 60:<br />

Figure 60: old Access Router FHO report capture<br />

CEC Deliverable Number D0202 54 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

In <strong>the</strong> previous capture we can see a real message sent to <strong>the</strong> <strong>QoS</strong> Broker performing a Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Over.<br />

This message was a ‘<str<strong>on</strong>g>Report</str<strong>on</strong>g>’ <strong>on</strong>e with a <str<strong>on</strong>g>Report</str<strong>on</strong>g>-type = 4 <str<strong>on</strong>g>and</str<strong>on</strong>g> a signaling h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler = 0. In <strong>the</strong> last message<br />

object (<strong>the</strong> ClientSI) we can see <strong>the</strong> following addresses:<br />

oldCoA: 2001:720:410:1006:204:e2ff:fe2a:460c<br />

newCoA: 2001:720:410:1007:204:e2ff:fe2a:460c<br />

newAR: 2001:720:410:1007:204:e2ff:fe08:c8c (termita.ipv6)<br />

We can see in <strong>the</strong>se addresses how, when <strong>the</strong> MIP module interrupted <strong>the</strong> oAR, it passed to <strong>the</strong> <strong>QoS</strong><br />

Manager all <strong>the</strong> FHO addresses related. Also we advertise how <strong>the</strong> mobile module changed correctly <strong>the</strong><br />

IPv6 prefixes <str<strong>on</strong>g>and</str<strong>on</strong>g> it acquired <strong>the</strong> nAR address. Immediately, <strong>the</strong> oAR passed this informati<strong>on</strong> to <strong>the</strong> <strong>QoS</strong><br />

Manager. In <strong>the</strong> appendix B secti<strong>on</strong> 9.4.1 <strong>the</strong> printed debug text lines that <strong>the</strong> router prints out <strong>on</strong> a FHO<br />

report sequence are presented.<br />

The sec<strong>on</strong>d capture shows <strong>the</strong> Affirmative Unsolicited FHO COPS decisi<strong>on</strong> message with data towards<br />

<strong>the</strong> nAR. First we can see <strong>the</strong> e<strong>the</strong>real capture (Fig. 61):<br />

Figure 61: <strong>QoS</strong> Broker FHO decisi<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> nAR reports capture<br />

In <strong>the</strong> previous capture we can see first <strong>the</strong> message sent to <strong>the</strong> nAR performing a Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Over<br />

notificati<strong>on</strong>. This message was an unsolicited Decisi<strong>on</strong> <strong>on</strong>e with a R-type = 16 <str<strong>on</strong>g>and</str<strong>on</strong>g> a signaling h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler =<br />

0. Only <strong>on</strong>e ‘ClientSI Decisi<strong>on</strong> Data’ objects was attached due to <strong>the</strong> mobile terminal had <strong>on</strong>ly <strong>on</strong>e active<br />

traffic with ‘garrapata.ipv6’. Its structure was:<br />

BW_policer_1 = 50<br />

Burst_policer_1 = 1514<br />

Source_addr_1 = 2001:720:410:1007:204:e2ff:fe2a:460c (newCoA)<br />

dest_addr_1 = 2001:720:410:1003:204:75ff:fe7b:943e (garrapata.ipv6)<br />

dscp_1 = 0x00<br />

CEC Deliverable Number D0202 55 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

The nAR processed <strong>the</strong> last message <str<strong>on</strong>g>and</str<strong>on</strong>g> installed <strong>the</strong> solicited traffic. Once <strong>the</strong> traffic was installed<br />

correctly, <strong>the</strong> nAR informed <strong>the</strong> <strong>QoS</strong> Broker thru a ‘Resource Allocati<strong>on</strong> <str<strong>on</strong>g>Report</str<strong>on</strong>g>’ message. In this<br />

message was indicated to <strong>the</strong> <strong>QoS</strong> Broker <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler <str<strong>on</strong>g>and</str<strong>on</strong>g> its implementati<strong>on</strong> state. In <strong>the</strong><br />

capture we can see this kind of message.<br />

The nAR began to listen for an ‘Unsolicited Decisi<strong>on</strong> message’ when <strong>the</strong> MIP module interrupted its<br />

normal executi<strong>on</strong>. When all <strong>the</strong> FHO process was over, <strong>the</strong> nAR reported to <strong>the</strong> MIP module <strong>the</strong> final<br />

state. In <strong>the</strong> appendix B secti<strong>on</strong> 9.4.2 <strong>the</strong> printed debug text lines that <strong>the</strong> router prints out <strong>on</strong> a FHO<br />

decisi<strong>on</strong> sequence are presented.<br />

5.1.2.5 Access Router timeout c<strong>on</strong>necti<strong>on</strong> deleti<strong>on</strong><br />

This capture shows <strong>the</strong> Delete Request State COPS message. First we can see <strong>the</strong> e<strong>the</strong>real capture:<br />

Figure 62: Access Router Delete Request State capture<br />

In <strong>the</strong> previous capture we can see <strong>the</strong> message that <strong>the</strong> AR sent to <strong>the</strong> <strong>QoS</strong> Broker when an installed state<br />

expired (more than 60 sec<strong>on</strong>ds inactive). This message was an unidirecti<strong>on</strong>al Delete Request with a<br />

Reas<strong>on</strong> = 5 (timeout) <str<strong>on</strong>g>and</str<strong>on</strong>g> a h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler = 1 (equal to <strong>the</strong> number of <strong>the</strong> expired c<strong>on</strong>necti<strong>on</strong>).<br />

The COPS message <str<strong>on</strong>g>and</str<strong>on</strong>g> its objects were revised, being according to <strong>the</strong> st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard (RFC 2748).<br />

In <strong>the</strong> appendix B secti<strong>on</strong> 9.5 <strong>the</strong> printed debug text lines that <strong>the</strong> router prints out <strong>on</strong> a timeout<br />

c<strong>on</strong>necti<strong>on</strong> deleti<strong>on</strong> sequence are presented.<br />

5.1.2.6 Access Router c<strong>on</strong>necti<strong>on</strong> check dialogue<br />

This capture shows <strong>the</strong> COPS c<strong>on</strong>necti<strong>on</strong> check sequence. First we can see <strong>the</strong> e<strong>the</strong>real capture (Fig. 63):<br />

CEC Deliverable Number D0202 56 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Figure 63: Access Router c<strong>on</strong>necti<strong>on</strong> check capture<br />

Due to <strong>the</strong> value of <strong>the</strong> ‘KATimer’ (120 sec<strong>on</strong>ds here), <strong>the</strong> access router sent r<str<strong>on</strong>g>and</str<strong>on</strong>g>omly between ¼ <str<strong>on</strong>g>and</str<strong>on</strong>g> ¾<br />

of <strong>the</strong> ‘KATimer’ (counting time since <strong>the</strong> last KA message was sent) a ‘Keep-Alive’ message to <strong>the</strong> <strong>QoS</strong><br />

Broker. In <strong>the</strong> captured message we can also see <strong>the</strong> answer to <strong>the</strong> Keep-Alive message that <strong>the</strong> <strong>QoS</strong><br />

Broker generated towards <strong>the</strong> <strong>QoS</strong> Manager.<br />

In <strong>the</strong> appendix B secti<strong>on</strong> 9.6 <strong>the</strong> printed debug text lines that <strong>the</strong> router prints out <strong>on</strong> a c<strong>on</strong>necti<strong>on</strong> check<br />

sequence are presented.<br />

5.1.2.7 Access Router closing COPS c<strong>on</strong>necti<strong>on</strong><br />

This capture shows a COPS c<strong>on</strong>necti<strong>on</strong> close. First we can see <strong>the</strong> e<strong>the</strong>real capture (Fig. 64):<br />

CEC Deliverable Number D0202 57 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Figure 64: Access Router c<strong>on</strong>necti<strong>on</strong> close capture<br />

In this capture we can see how <strong>the</strong> router ends a COPS sessi<strong>on</strong>. Here, <strong>the</strong> router was stopped by pressing<br />

<strong>the</strong> ‘Ctrl-C’ keyboard combinati<strong>on</strong>. Hence, <strong>the</strong> ‘Error-code’ field in <strong>the</strong> ‘Error’ object indicates: ‘Shutting<br />

down’.<br />

In <strong>the</strong> appendix B secti<strong>on</strong> 9.7 <strong>the</strong> printed debug text lines that <strong>the</strong> router printed out in <strong>the</strong> previous<br />

c<strong>on</strong>necti<strong>on</strong> close sequence are presented.<br />

CEC Deliverable Number D0202 58 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

5.1.3 Quality of Service tests<br />

In this secti<strong>on</strong> we present four <strong>QoS</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> policing tests performed with our Access Router using a UDP<br />

traffic generator (mgen6) or an ICMP applicati<strong>on</strong> (ping6). In <strong>the</strong> first <strong>on</strong>e, we show how <strong>the</strong> router denies<br />

<strong>the</strong> access to a n<strong>on</strong>-authorized traffic, <strong>the</strong> sec<strong>on</strong>d <strong>on</strong>e is a dem<strong>on</strong>strati<strong>on</strong> of <strong>QoS</strong> classificati<strong>on</strong> <strong>on</strong> <strong>the</strong><br />

access interface, <strong>the</strong> third <strong>on</strong>e is a policed based authorizati<strong>on</strong> test <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> last <strong>on</strong>e is a dynamic<br />

rec<strong>on</strong>figurati<strong>on</strong> test.<br />

5.1.3.1 Denying access to a n<strong>on</strong>-authorized traffic<br />

The first test is simple: it shows <strong>the</strong> router capacity of denying access to <strong>the</strong> core network. This test<br />

required that <strong>the</strong> ‘best-effort’ class in <strong>the</strong> behaviour file activated <strong>the</strong> ‘borrow flag’ in order to receive <strong>the</strong><br />

answers from ‘garrapata.ipv6’ marked with <strong>the</strong> 0x00 DSCP. This way, <strong>on</strong>ly n<strong>on</strong>-authorized or default<br />

(DSCP = 0x00) packets thru <strong>the</strong> core interface were dropped by <strong>the</strong> router.<br />

In this test we used <strong>the</strong> files exposed in Appendix A 8.1. The traffic generator program was ‘ping6’; this<br />

program generates bi-directi<strong>on</strong>al ICMPv6 packets <str<strong>on</strong>g>and</str<strong>on</strong>g> can mark <strong>the</strong> IPv6 TClass field.<br />

The operati<strong>on</strong> procedure was very simple: execute <strong>the</strong> ‘ping6’ program sending packets to<br />

‘garrapata.ipv6’ <str<strong>on</strong>g>and</str<strong>on</strong>g> install or uninstall <strong>the</strong> traffic in <strong>the</strong> <strong>QoS</strong> Broker via <strong>the</strong> AAAC.<br />

For this test an ICMPv6 traffic was generated towards ‘garrapata.ipv6’, <strong>the</strong> ICMPv6 data size was 992<br />

Bytes, <strong>the</strong> IPv6 TClass was 0x88 (DSCP = 0x22) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> time interval between packets was 1 sec<strong>on</strong>d.<br />

The test’s result is in Fig. 65 (<strong>the</strong> sequence will be explain later):<br />

escorpi<strong>on</strong>:~/mgen6/> sudo /usr/sbin/ping6 garrapata.ipv6 -s 992 -P 88 -i 1<br />

PING garrapata.ipv6(garrapata.ipv6.it.uc3m.es) 992 data bytes<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=33 hops=63 time=857 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=34 hops=63 time=800 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=35 hops=63 time=846 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=36 hops=63 time=812 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=37 hops=63 time=794 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=38 hops=63 time=822 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=39 hops=63 time=784 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=40 hops=63 time=816 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=41 hops=63 time=784 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=42 hops=63 time=800 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=43 hops=63 time=835 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=44 hops=63 time=817 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=45 hops=63 time=797 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=46 hops=63 time=823 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=47 hops=63 time=790 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=48 hops=63 time=768 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=49 hops=63 time=805 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=50 hops=63 time=827 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=51 hops=63 time=842 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=52 hops=63 time=774 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=53 hops=63 time=811 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=54 hops=63 time=811 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=55 hops=63 time=800 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=56 hops=63 time=792 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=57 hops=63 time=800 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=58 hops=63 time=792 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=87 hops=63 time=779 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=88 hops=63 time=794 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=90 hops=63 time=776 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=91 hops=63 time=778 usec<br />

1000 bytes from garrapata.ipv6.it.uc3m.es: icmp_seq=92 hops=63 time=756 usec<br />

--- garrapata.ipv6 ping statistics ---<br />

93 packets transmitted, 46 packets received, 50% packet loss<br />

round-trip min/avg/max/mdev = 0.756/0.805/0.857/0.035 ms<br />

Figure 65: Access to <strong>the</strong> core network sequence test<br />

Once <strong>the</strong> router was working, we tried to send traffic towards ‘garrapata.ipv6’. Then we executed <strong>the</strong><br />

‘ping6’ program <str<strong>on</strong>g>and</str<strong>on</strong>g>, as we can see, no packet was able to reach ‘garrapata.ipv6’. This is due to <strong>the</strong><br />

properties of <strong>the</strong> token-bucket algorithm with 8bps <str<strong>on</strong>g>and</str<strong>on</strong>g> 1 bytes of burst.<br />

Later, we installed <strong>the</strong> ICMPv6 traffic into <strong>the</strong> <strong>QoS</strong> Broker with <strong>the</strong> correct DSCP <str<strong>on</strong>g>and</str<strong>on</strong>g>, when <strong>the</strong> <strong>QoS</strong><br />

Manager asked <strong>the</strong> <strong>QoS</strong> Broker for it, <strong>the</strong> Broker answered it affirmatively. Then <strong>the</strong> traffic was<br />

CEC Deliverable Number D0202 59 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

authorized <str<strong>on</strong>g>and</str<strong>on</strong>g> a policer with 90kbps of b<str<strong>on</strong>g>and</str<strong>on</strong>g>width <str<strong>on</strong>g>and</str<strong>on</strong>g> a burst of 1514 bytes were applied. Packets<br />

started <strong>the</strong>n to go out thru <strong>the</strong> interface (green <strong>on</strong>es).<br />

Later we used <strong>the</strong> AAAC to uninstall <strong>the</strong> traffic in <strong>the</strong> <strong>QoS</strong> Broker <str<strong>on</strong>g>and</str<strong>on</strong>g> we can see how packets were now<br />

dropped (icmp_sec=58 to 87). To end up <strong>the</strong> test, we stopped <strong>the</strong> router program <str<strong>on</strong>g>and</str<strong>on</strong>g> we can see in <strong>the</strong><br />

sequence that packets began to cross <strong>the</strong> router (blue <strong>on</strong>es).<br />

In <strong>the</strong> appendix B secti<strong>on</strong> 9.8 <strong>the</strong> printed debug text lines that <strong>the</strong> router printed out in <strong>the</strong> previous test<br />

are presented. Also it was a complete router operati<strong>on</strong>.<br />

5.1.3.2 Access interface <strong>QoS</strong> test<br />

The goal of this test was to probe <strong>the</strong> correct applicati<strong>on</strong> <strong>on</strong> <strong>the</strong> router’s access interface of <strong>QoS</strong> Broker’s<br />

<strong>QoS</strong> c<strong>on</strong>figurati<strong>on</strong>. It is important to highlight that all <strong>the</strong> interacti<strong>on</strong> between <strong>QoS</strong> Manager <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

management & planning algorithms in <strong>the</strong> kernel was d<strong>on</strong>e via TC API functi<strong>on</strong>s.<br />

In this secti<strong>on</strong> <strong>the</strong> <strong>QoS</strong> c<strong>on</strong>figurati<strong>on</strong> were static, i.e. <strong>the</strong> <strong>QoS</strong> Broker did not request a ‘Router<br />

rec<strong>on</strong>figurati<strong>on</strong>’.<br />

The applicati<strong>on</strong> used in this test to generate unidirecti<strong>on</strong>al UDP/IPv6 traffic from ‘garrapata.ipv6’ to<br />

‘escorpi<strong>on</strong>.ipv6’ is called ‘mgen6’. This program needs a DSCP traffic marker to simulate different<br />

DiffServ traffics.<br />

Also note that, in <strong>the</strong>se tests, <strong>the</strong> program ‘mgen6’ was utilized to saturate <strong>the</strong> queues capacity with more<br />

binary rate that <strong>the</strong> queues support. We tested <strong>the</strong> real binary data that <strong>the</strong> queues were able to forward.<br />

In <strong>the</strong> following tests, we used <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong> files exposed in Appendix A 8.1.<br />

In order to provide <strong>QoS</strong> to a traffic <str<strong>on</strong>g>and</str<strong>on</strong>g> obtain statistics from it we followed <strong>the</strong> following steps:<br />

- With <strong>the</strong> marking software we marked <strong>the</strong> DSCP of all traffic’s packets that ‘garrapata.ipv6’ sent<br />

to ‘escorpi<strong>on</strong>.ipv6’.<br />

- The MT packet flow was simulated with <strong>the</strong> ‘mgen6’ applicati<strong>on</strong>: UDP/IPv6 traffic towards<br />

‘escorpi<strong>on</strong>.ipv6’.<br />

- When that traffic passed thru ‘pulga.ipv6’, <strong>the</strong> <strong>QoS</strong> logic installed <strong>on</strong> <strong>the</strong> access interface<br />

classified packets based <strong>on</strong> <strong>the</strong> DSCP towards <strong>the</strong>ir <strong>QoS</strong> queue.<br />

Once <strong>the</strong> previous steps were realized, we were able to check <strong>the</strong> amount of binary rate <str<strong>on</strong>g>and</str<strong>on</strong>g> drops per<br />

queue. Repeating <strong>the</strong> process for all <strong>the</strong> possible DSCPs we probe <strong>the</strong> whole <strong>QoS</strong> c<strong>on</strong>figurati<strong>on</strong> <strong>on</strong> <strong>the</strong><br />

access router. In Table 6 we present <strong>the</strong> measured performance :<br />

AF<br />

Low drop<br />

probability<br />

Médium<br />

drop<br />

probability<br />

High drop<br />

probability<br />

Class 1 (180kbps) Class 2 (270kbps) Class 3 (900kbps) Class 4 (1800kbps)<br />

Data<br />

binary<br />

rate<br />

176 kbps<br />

176 kbps<br />

176 kbps<br />

Drops<br />

1514<br />

(75,7%)<br />

1542<br />

(77,1%)<br />

1547<br />

(77,3%)<br />

Data<br />

binary<br />

rate<br />

262 kbps<br />

263 kbps<br />

263 kbps<br />

Drops<br />

851<br />

(42,5%)<br />

1115<br />

(55,7%)<br />

1244<br />

(62,2%)<br />

Data<br />

binary<br />

rate<br />

889 kbps<br />

889 kbps<br />

889 kbps<br />

Drops<br />

7289<br />

(72,8%)<br />

7382<br />

(73,8%)<br />

7481<br />

(74,8%)<br />

Data<br />

binary<br />

rate<br />

1772<br />

kbps<br />

1772<br />

kbps<br />

1772<br />

kbps<br />

Drops<br />

4888<br />

(48,8%)<br />

4988<br />

(49,8%)<br />

5085<br />

(50,8%)<br />

Table 6: Obtained <strong>QoS</strong> Test without policing (saturated queues)<br />

In this test we utilized <strong>the</strong> ‘mgen6’ program with two different binary rates. For classes 3 <str<strong>on</strong>g>and</str<strong>on</strong>g> 4 were<br />

generated a 500pps (packets per sec<strong>on</strong>d), 1000Bpp (Bytes per packet) traffic with a durati<strong>on</strong> of 20<br />

sec<strong>on</strong>ds. The binary data rate that we tried to post towards <strong>the</strong>se classes was 4Mbps (500pac/s ·<br />

1000Bytes/pac · 8bits/Byte). In <strong>the</strong> same way, for a 20 sec<strong>on</strong>ds test, 10000 packets (20seg · 500pac/s)<br />

were sent.<br />

For classes 1 <str<strong>on</strong>g>and</str<strong>on</strong>g> 2, a 100pps, 1000 Bpp UDP traffic with a 20 sec<strong>on</strong>ds durati<strong>on</strong> was generated. The<br />

binary data rate that we tried to post towards <strong>the</strong>se classes was 800kbps (100pac/s · 1000Bytes/pac ·<br />

8bits/Byte). In <strong>the</strong> same way, for a 20 sec<strong>on</strong>ds test, 2000 packets (20seg · 100pac/s) were sent.<br />

As we know, <strong>the</strong> UDP header measures 8 bytes, <strong>the</strong> IPv6 header without opti<strong>on</strong>s has 40 bytes <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

E<strong>the</strong>rnet header measures 14 bytes. With <strong>the</strong>se data we know that if a packet has 1000 data bytes, <strong>the</strong><br />

CEC Deliverable Number D0202 60 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

transmitted packet is 1062 bytes l<strong>on</strong>g (1000+8+40+14). Therefore, to determine <strong>the</strong> link binary rate, we<br />

will need to multiply <strong>the</strong> binary data rate –that <strong>the</strong> program returns– for a 1.062 factor.<br />

Looking test’s results, we can c<strong>on</strong>firm <strong>the</strong> correct operati<strong>on</strong> of queues disciplines. For class 4, <strong>the</strong> link<br />

binary rate reserved was 1800kbps (700+600+500 kbps) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> test showed up a link binary rate of<br />

1881kbps (1772 · 1.062). Also we can observe in this class how, with <strong>the</strong> same sent traffic, three different<br />

drop discard probabilities were obtained. Basically, <strong>the</strong> CBQ class (WRR algorithm) fix <strong>the</strong> binary rate<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> RIO planning algorithm fix <strong>the</strong> packet dropping in CBQ bursts.<br />

For class 3, <strong>the</strong> link binary rate reserved was 900kbps (400+300+200 kbps) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> test showed up a link<br />

binary rate of 944kbps (889 · 1.062) in all its queues. For class 2, <strong>the</strong> link binary rate reserved was<br />

270kbps (100+90+80 kbps) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> test showed up a link binary rate of 278kbps (263 · 1.062) in all its<br />

queues. Finally, for class 1, <strong>the</strong> link binary rate reserved was 180kbps (70+60+50 kbps) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> test<br />

showed up a link binary rate of 186kbps (176 · 1.062) in all its queues. We can observe in all of <strong>the</strong>m how<br />

different drop probabilities are obtained based <strong>on</strong> packet’s DSCP. Remember that GRED parameters<br />

change form <strong>on</strong>e traffic to ano<strong>the</strong>r but <strong>the</strong> CBQ burst is <strong>the</strong> same.<br />

5.1.3.3 Core interface policing test<br />

In this test we dem<strong>on</strong>strated <strong>the</strong> policer operati<strong>on</strong> functi<strong>on</strong>ality <strong>on</strong> <strong>the</strong> core interface. Note that policers<br />

were applied for each filter (traffic) <str<strong>on</strong>g>and</str<strong>on</strong>g> all filters classified towards <strong>the</strong> same queue discipline (1:1).<br />

Therefore, <strong>the</strong> binary rate of that class had to be equal to <strong>the</strong> interface speed (100Mbps in this case). With<br />

policers we were able to c<strong>on</strong>trol traffic’s rates <str<strong>on</strong>g>and</str<strong>on</strong>g> prevent that a traffic from getting all <strong>the</strong> binary rate of<br />

its class to itself. The token-bucket policer algorithm shaped <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>trolled <strong>the</strong> packet flow according to<br />

<strong>the</strong> transferred binary rate <str<strong>on</strong>g>and</str<strong>on</strong>g> burst (Fig. 66).<br />

Figure 66: Token-bucket policer schematic<br />

The traffic generator program was ‘mgen6’ from ‘escorpi<strong>on</strong>.ipv6’ to ‘garrapata.ipv6’ <str<strong>on</strong>g>and</str<strong>on</strong>g> it also was<br />

utilized saturating <strong>the</strong> queues capacity with more binary rate that <strong>the</strong> queues support.<br />

In this test we used <strong>the</strong> same files exposed in Appendix A 8.1, <str<strong>on</strong>g>and</str<strong>on</strong>g> we followed <strong>the</strong> following steps in<br />

order to authorize <str<strong>on</strong>g>and</str<strong>on</strong>g> police a traffic:<br />

- With <strong>the</strong> AAAC simulati<strong>on</strong> program we had to request <strong>the</strong> <strong>QoS</strong> Broker for <strong>the</strong> traffic’s DSCP<br />

we wanted to test. To probe <strong>the</strong> class AF1m, <strong>the</strong> NVUP with 8kbps had to be installed <strong>on</strong> <strong>the</strong><br />

<strong>QoS</strong> Broker, with priority set to 12 <str<strong>on</strong>g>and</str<strong>on</strong>g> a burst size set to 1514 bytes. The <strong>QoS</strong> Broker returned<br />

<strong>the</strong> DSCP code for that traffic (0x0C) to <strong>the</strong> AAAC.<br />

- With <strong>the</strong> marking software we marked <strong>the</strong> DSCP of all traffic’s packets that ‘escorpi<strong>on</strong>.ipv6’<br />

sent to ‘garrapata.ipv6’. The DSCP was <strong>the</strong> code returned by <strong>the</strong> <strong>QoS</strong> Broker.<br />

- The MT packet flow was simulated with <strong>the</strong> ‘mgen6’ applicati<strong>on</strong>: UDP/IPv6 traffic towards<br />

‘garrapata.ipv6’.<br />

- When that traffic passed thru ‘pulga.ipv6’, <strong>the</strong> <strong>QoS</strong> Manager detected it with <strong>the</strong> capturer<br />

module <str<strong>on</strong>g>and</str<strong>on</strong>g> requested <strong>the</strong> <strong>QoS</strong> Broker to authorize that traffic <str<strong>on</strong>g>and</str<strong>on</strong>g>, in an affirmative case, <strong>the</strong><br />

policing parameters.<br />

- The <strong>QoS</strong> Broker answered it affirmatively <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>n <strong>the</strong> router applied a filter towards <strong>the</strong> class<br />

1:1 <str<strong>on</strong>g>and</str<strong>on</strong>g> a token-bucket policer.<br />

CEC Deliverable Number D0202 61 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

The performance measures are presented in Table 7:<br />

AF<br />

Low drop<br />

probability<br />

Medium<br />

drop<br />

probability<br />

High drop<br />

probability<br />

Class 1 (180kbps) Class 2 (270kbps) Class 3 (900kbps) Class 4 (1800kbps)<br />

Data<br />

binary<br />

rate<br />

9.2 kbps<br />

Drops<br />

97<br />

(80.8%)<br />

8.3 kbps 96 (80%)<br />

7.3 kbps<br />

101<br />

(84.1%)<br />

Data<br />

binary<br />

rate<br />

29.2<br />

kbps<br />

19.9<br />

kbps<br />

10.2<br />

kbps<br />

Drops<br />

47<br />

(39.1%)<br />

70<br />

(58.3%)<br />

93<br />

(77.5%)<br />

Data<br />

binary<br />

rate<br />

58.6<br />

kbps<br />

49 kbps<br />

39.3<br />

kbps<br />

Drops<br />

253<br />

(63.2%)<br />

277<br />

(69.2%)<br />

302<br />

(75.5%)<br />

Data<br />

binary<br />

rate<br />

80.5<br />

kbps<br />

77.9<br />

kbps<br />

68.3<br />

kbps<br />

Drops<br />

199<br />

(49.7%)<br />

205<br />

(51.2%)<br />

229<br />

(57.2%)<br />

Table 7: Obtained <strong>QoS</strong> Test with policing (saturated queues)<br />

In this test we utilized <strong>the</strong> ‘mgen6’ program with two different binary rates. For classes 3 <str<strong>on</strong>g>and</str<strong>on</strong>g> 4 were<br />

generated a 20pps, 1000Bpp traffic with a durati<strong>on</strong> of 20 sec<strong>on</strong>ds. The binary data rate that we tried to<br />

post towards <strong>the</strong>se traffics was 160kbps (20pac/s · 1000Bytes/pac · 8bits/Byte). In <strong>the</strong> same way, 20<br />

sec<strong>on</strong>ds test, 400 packets (20seg · 20pac/s) were sent.<br />

For classes 1 <str<strong>on</strong>g>and</str<strong>on</strong>g> 2 were generated a 6pps, 1000 Bpp UDP traffic with a durati<strong>on</strong> of 20 sec<strong>on</strong>ds. The<br />

binary data rate that we tried to post towards <strong>the</strong>se traffics was 48kbps (6pac/s · 1000Bytes/pac ·<br />

8bits/Byte). In <strong>the</strong> same way, for 20 sec<strong>on</strong>ds test, 120 packets (20seg · 6pac/s) were sent.<br />

When <strong>the</strong> policer works well, <strong>the</strong> traffic transferred in each case must be <strong>the</strong> same that is specified in <strong>the</strong><br />

‘politics file’ <str<strong>on</strong>g>and</str<strong>on</strong>g> that <strong>the</strong> <strong>QoS</strong> Broker sends to <strong>the</strong> Access router. We can observe how <strong>the</strong> tests<br />

completed <strong>the</strong> expectati<strong>on</strong>s:<br />

- AF4l = 85.5 kbps, AF4m = 82.7 kbps, AF4h = 72.5 kbps (link binary rate, factor 1.062),<br />

- AF3l = 62.2 kbps, AF3m = 52 kbps, AF3h = 41.7 kbps (link binary rate, factor 1.062),<br />

- AF2l = 31 kbps, AF2m = 21.1 kbps, AF2h = 10.8 kbps (link binary rate, factor 1.062),<br />

- AF1l = 9.7 kbps, AF1m = 8.8 kbps, AF1h = 7.7 kbps (link binary rate, factor 1.062),<br />

Looking test’s results, we can c<strong>on</strong>firm <strong>the</strong> correct operati<strong>on</strong> of policer functi<strong>on</strong>.<br />

5.1.3.4 Dynamic rec<strong>on</strong>figurati<strong>on</strong> test<br />

In this test we probe <strong>the</strong> router’s access interface <strong>QoS</strong> rec<strong>on</strong>figurati<strong>on</strong> mechanism under a <strong>QoS</strong> Broker’s<br />

petiti<strong>on</strong>. As <strong>the</strong> test name indicates, we present <strong>the</strong> traffic’s binary rate time evoluti<strong>on</strong>.<br />

The applicati<strong>on</strong> used in this test to generate <strong>the</strong> traffic was ‘mgen6’ from ‘garrapata.ipv6’ to<br />

‘escorpi<strong>on</strong>.ipv6’, but a new program was used to receive <strong>the</strong> traffic. A modified receptor processed all <strong>the</strong><br />

received packets, calculated <strong>the</strong> binary rate in time intervals <str<strong>on</strong>g>and</str<strong>on</strong>g> wrote this values in an Excel file. Later,<br />

<strong>the</strong>se values were treated to generate a graph.<br />

The steps we had to execute are <strong>the</strong> following <strong>on</strong>es: insert in a class a traffic that saturates its queue<br />

capacity. When <strong>the</strong> <strong>QoS</strong> Broker receives <strong>the</strong> queues statistics thru <strong>the</strong> COPS protocol it calls <strong>the</strong><br />

‘BW_c<strong>on</strong>trol_functi<strong>on</strong>’. This functi<strong>on</strong>, as it is programmed, processes <strong>the</strong> behaviour data list <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

queues statistics <str<strong>on</strong>g>and</str<strong>on</strong>g> requests (or not) <strong>the</strong> <strong>QoS</strong> Manager a queues rec<strong>on</strong>figurati<strong>on</strong>.<br />

Our ‘BW_c<strong>on</strong>trol_functi<strong>on</strong>’ operated in <strong>the</strong> following way: if <strong>the</strong> queue was more than 20 drops per<br />

sec<strong>on</strong>d it incremented <strong>the</strong> queues b<str<strong>on</strong>g>and</str<strong>on</strong>g>width in a 1.3 factor <str<strong>on</strong>g>and</str<strong>on</strong>g> requested <strong>the</strong> access router a<br />

rec<strong>on</strong>figurati<strong>on</strong>. Note that statistics were obtained from each GRED class, not for each filter, so this<br />

functi<strong>on</strong> operated at class level.<br />

For this test an 800kbps UDP data traffic was generated. It was marked as an AF1h class (DSCP = 0x0e).<br />

We used here <strong>the</strong> behaviour file seen in Appendix A 8.1. On <strong>the</strong> initial behaviour file, this traffic had<br />

assigned an 180kbps link data rate (70+60+50kbps). For this reas<strong>on</strong> <strong>the</strong> CBQ queue was saturated <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

result of a 200 sec<strong>on</strong>d test sequence is showin in Fig. 67.<br />

CEC Deliverable Number D0202 62 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

AF1 Class<br />

Binary rate (kbps)<br />

900<br />

800<br />

700<br />

600<br />

500<br />

400<br />

300<br />

200<br />

100<br />

0<br />

0 50 100 150 200 250<br />

Time (s)<br />

Figure 67: Dynamic rec<strong>on</strong>figurati<strong>on</strong> test<br />

In <strong>the</strong> graph we can see how, at <strong>the</strong> beginning, <strong>the</strong> traffic was classified towards its corresp<strong>on</strong>ding<br />

180kbps AF1h queue. Later, <strong>the</strong> router obtained <str<strong>on</strong>g>and</str<strong>on</strong>g> sent statistics from <strong>the</strong> queues to <strong>the</strong> <strong>QoS</strong> Broker.<br />

Those statistics inform <strong>the</strong> <strong>QoS</strong> Broker about binary rates, packets, drops <str<strong>on</strong>g>and</str<strong>on</strong>g> overlays per sec<strong>on</strong>d.<br />

The <strong>QoS</strong> Broker, looking at queue’s statistics (more than 20 drops/s), decided an increment in <strong>the</strong> class<br />

AF1 of a 1.3 factor. The Broker changed <strong>the</strong>n <strong>the</strong> queues virtual values of that CBQ class: <strong>the</strong> first to<br />

91kbps (70·1.3), <strong>the</strong> sec<strong>on</strong>d to 78 kbps (60·1.3) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> third to 65 kbps (50·1,3). In <strong>the</strong> end, <strong>the</strong> class AF1<br />

got a 234kbps binary rate (91+78+65kbps). In a same way, it also activated <strong>the</strong> rec<strong>on</strong>figurati<strong>on</strong> flag.<br />

When <strong>the</strong> Router needed to actualise <strong>the</strong> traffic, it had to send a petiti<strong>on</strong> to <strong>the</strong> <strong>QoS</strong> Broker <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>n <strong>the</strong><br />

<strong>QoS</strong> Broker requested to <strong>the</strong> router a rec<strong>on</strong>figurati<strong>on</strong>. The Router did a c<strong>on</strong>figurati<strong>on</strong> sequence applying<br />

<strong>the</strong> new queues.<br />

Obviously, with a 234 kbps binary rate, <strong>the</strong> number of drops per sec<strong>on</strong>d is more than 20 yet <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

process kept <strong>on</strong> repeating until reaching <strong>the</strong> traffic value. The <strong>the</strong>oretical steps values according to <strong>the</strong><br />

factor that <strong>the</strong> <strong>QoS</strong> Broker applied were: 180, 234, 304, 395, 514, 668kbps <str<strong>on</strong>g>and</str<strong>on</strong>g> finally <strong>the</strong> maximum (800<br />

kbps). The obtained results are in <strong>the</strong> graph above <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>y are quite faithful to <strong>the</strong> <strong>the</strong>oretical values.<br />

The rec<strong>on</strong>figurati<strong>on</strong>’s durati<strong>on</strong> was so short that it was not appreciated that momentarily all traffics were<br />

classified towards <strong>the</strong> ‘rec<strong>on</strong>figurati<strong>on</strong> class’ with a 500kbps binary rate.<br />

5.2 <strong>QoS</strong> Broker <str<strong>on</strong>g>and</str<strong>on</strong>g> DSCP marking tests<br />

Two versi<strong>on</strong>s of <strong>the</strong> DSCP marking software was provided. A first versi<strong>on</strong>, integrated in <strong>the</strong> Moby Dick<br />

test bed in October 2002, in Madrid, could <strong>on</strong>ly filter packets <strong>on</strong> <strong>the</strong> IPv6 main header <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> transport<br />

(UDP, TCP) headers fields. Besides, in this first versi<strong>on</strong>, <strong>the</strong> ‘CoS’ field in each filter of <strong>the</strong> Filters<br />

Database did not represent a service (e.g. S1, S2, …) but <strong>on</strong>ly a DSCP (e.g. ‘101010’, …). In <strong>the</strong> sec<strong>on</strong>d<br />

versi<strong>on</strong> of <strong>the</strong> software, provided in March 2003, <strong>the</strong> value of <strong>the</strong> CoS field became ei<strong>the</strong>r a service<br />

identifier or a DSCP, <str<strong>on</strong>g>and</str<strong>on</strong>g> its filtering capabilities were extended to <strong>the</strong> IPv6 extensi<strong>on</strong> headers, <strong>the</strong><br />

ICMPv6 header <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> tunneled packets.<br />

In this secti<strong>on</strong>, we present <strong>the</strong> individual tests d<strong>on</strong>e for <strong>the</strong> DSCP marking software. A first part describes<br />

<strong>the</strong> tests provided for <strong>the</strong> first versi<strong>on</strong> of <strong>the</strong> software, <str<strong>on</strong>g>and</str<strong>on</strong>g> a sec<strong>on</strong>d part describes <strong>the</strong> tests provided for<br />

<strong>the</strong> sec<strong>on</strong>d versi<strong>on</strong>.<br />

5.2.1 First tests series<br />

The first tests series validates both <strong>the</strong> main functi<strong>on</strong>alities of <strong>the</strong> software comp<strong>on</strong>ents, i.e. <strong>the</strong> filters<br />

loading, <strong>the</strong> DMT updates <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> packet marking, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> very first set of filtering capabilities offered by<br />

<strong>the</strong> DMS.<br />

CEC Deliverable Number D0202 63 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

5.2.1.1 Filters loading<br />

The first part of <strong>the</strong> software tests c<strong>on</strong>sisted in validating <strong>the</strong> Table Update Module.<br />

We mainly verified:<br />

• all <strong>the</strong> possible fields defined in Table 3 were recognized,<br />

• <strong>the</strong> user could not use unexpected values (more than a maximum, less than a minimum, a<br />

decimal value instead of a binary <strong>on</strong>e, …) in <strong>the</strong> filters,<br />

• all <strong>the</strong> legal IPv6 addresses formats could be used,<br />

• <strong>the</strong> DSCP Matching Table was correctly initialized <str<strong>on</strong>g>and</str<strong>on</strong>g> updated (incorrectly written filters were<br />

missing, existing filters were correctly replaced by new <strong>on</strong>es, filters were really placed at <strong>the</strong><br />

range defined by <strong>the</strong> ‘Filter’ field, <str<strong>on</strong>g>and</str<strong>on</strong>g> so <strong>on</strong>).<br />

All <strong>the</strong>se tests was d<strong>on</strong>e thanks to detailed prints in <strong>the</strong> ‘/var/log/messages’ file, such as:<br />

Apr 10 16:43:37 hathor kernel: +New filter: 2<br />

Apr 10 16:43:37 hathor kernel: --New filter descripti<strong>on</strong>: Try<br />

Apr 10 16:43:37 hathor kernel: --New field list<br />

Apr 10 16:43:37 hathor kernel: ...Field name: IP6DSCP<br />

Apr 10 16:43:37 hathor kernel: ...Value: 0<br />

Apr 10 16:43:37 hathor kernel: --New filter DSCP: 0xA<br />

Apr 10 16:43:37 hathor kernel: +New filter: 3<br />

Apr 10 16:43:37 hathor kernel: --New filter descripti<strong>on</strong>: Try<br />

Apr 10 16:43:37 hathor kernel: --New field list<br />

Apr 10 16:43:37 hathor kernel: ...Field name: IP6DSCP<br />

Apr 10 16:43:37 hathor kernel: ...Value: 1<br />

Apr 10 16:43:37 hathor kernel: --New filter DSCP: 0xF<br />

Apr 10 16:43:37 hathor kernel: +2 Filters loaded<br />

5.2.1.2 Packet marking<br />

The sec<strong>on</strong>d part of <strong>the</strong> software tests c<strong>on</strong>sisted in validating <strong>the</strong> DSCP Marking Functi<strong>on</strong>. Most of <strong>the</strong><br />

fields in <strong>the</strong> IPv6 main header, <str<strong>on</strong>g>and</str<strong>on</strong>g> in <strong>the</strong> transport headers (UDP <str<strong>on</strong>g>and</str<strong>on</strong>g> TCP) were tested thanks to three<br />

applicati<strong>on</strong>s allowing <strong>the</strong> emissi<strong>on</strong> of IPv6 packets (ping6, mgen6 <str<strong>on</strong>g>and</str<strong>on</strong>g> telnet), <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>on</strong>e applicati<strong>on</strong><br />

allowing to inspect all <strong>the</strong> fields of <strong>the</strong> different headers (E<strong>the</strong>real).<br />

5.2.1.2.1 IPv6 tests<br />

All <strong>the</strong>se tests were d<strong>on</strong>e with ping6, which is able to initialize <strong>the</strong> Traffic Class <str<strong>on</strong>g>and</str<strong>on</strong>g> Flow Label fields.<br />

Besides, it sends ICMPv6 packets. With a simple “Echo Request”, it is possible to test all <strong>the</strong> IPv6 main<br />

header fields, including <strong>the</strong> ICMPv6 packet detecti<strong>on</strong> (thanks to <strong>the</strong> Next Header field). The Payload<br />

Length <str<strong>on</strong>g>and</str<strong>on</strong>g> Hop Limit fields are always initialized to 64, by default. The ping6 –P opti<strong>on</strong> initializes <strong>the</strong><br />

packet DSCP with a decimal value, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> –F opti<strong>on</strong> initializes <strong>the</strong> Flow Label with a decimal value.<br />

With <strong>the</strong> following filter, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> ‘ping6 –P 180 –F 512 ::1’, we verified, thanks to E<strong>the</strong>real, that packets<br />

were marked with <strong>the</strong> ‘101010’ DSCP:<br />

Filter 0<br />

Descripti<strong>on</strong> IP6_Filter<br />

IP6DSCP 101101<br />

IP6SrcAddr ::1<br />

IP6DestAddr ::1<br />

IP6FlowLbl 512<br />

IP6PayloadLen 64<br />

IP6HopLim 64<br />

IP6ICMP 1<br />

CoS 101010<br />

Note that ping6 initializes <strong>the</strong> eight bits of <strong>the</strong> Traffic Class field, instead of <strong>on</strong>ly <strong>the</strong> six left bits, as<br />

defined in <strong>the</strong> DiffServ architecture. So, to initialize <strong>the</strong> DSCP with ‘101101’, we must use <strong>the</strong> ‘180’<br />

value (‘10110100’ in binary). In a same way, E<strong>the</strong>real interprets all of <strong>the</strong> eight bits of <strong>the</strong> Traffic Class<br />

field. So, when E<strong>the</strong>real reads <strong>the</strong> ‘168’ value in this field (‘10101000’ in binary), it corresp<strong>on</strong>ds to <strong>the</strong><br />

‘101010’ DSCP.<br />

CEC Deliverable Number D0202 64 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

We also verified that, with ‘ping6 –P 180 –F 400 ::1’, <strong>the</strong> DSCP of <strong>the</strong> packet stayed unchanged.<br />

5.2.1.2.2 UDP tests<br />

All <strong>the</strong>se tests were d<strong>on</strong>e with mgen6. This applicati<strong>on</strong> is able to generate UDP packets <strong>on</strong> <strong>the</strong> top of<br />

IPv6. The following comm<str<strong>on</strong>g>and</str<strong>on</strong>g> was executed: ‘mgen6 –b ::1,2037 –r 1 –s 1050 –d 1 –i eth0 –p 20000’.<br />

The ‘-r’, ‘-s’, <str<strong>on</strong>g>and</str<strong>on</strong>g> ‘-d’ opti<strong>on</strong>s define respectively <strong>the</strong> output rate (in packets per sec<strong>on</strong>d), <strong>the</strong> size of <strong>the</strong><br />

packets, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> durati<strong>on</strong> of <strong>the</strong> UDP flow. The ‘-b’ opti<strong>on</strong> defines both <strong>the</strong> destinati<strong>on</strong> address (::1) <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

<strong>the</strong> destinati<strong>on</strong> port (2037). The ‘-p’ opti<strong>on</strong> defines <strong>the</strong> source port (20000). The Length of <strong>the</strong> packet sent<br />

with this comm<str<strong>on</strong>g>and</str<strong>on</strong>g> is 1058.<br />

With <strong>the</strong> following filter, <str<strong>on</strong>g>and</str<strong>on</strong>g> E<strong>the</strong>real, we verified that packets were marked with <strong>the</strong> ‘101010’ DSCP:<br />

Filter 1<br />

Descripti<strong>on</strong> UDP_Filter<br />

UDPSrcPort 20000<br />

UDPDestPort 2037<br />

UDPLen 1058<br />

CoS 101010<br />

We also verified that, if we changed <strong>the</strong> source or <strong>the</strong> destinati<strong>on</strong> port with mgen6, <strong>the</strong>n <strong>the</strong> packets<br />

stayed unmarked.<br />

5.2.1.2.3 TCP tests<br />

All <strong>the</strong>se tests were d<strong>on</strong>e with telnet.<br />

Telnet is a very simple way to test filters <strong>on</strong> TCP fields. The very first packet sent with a telnet uses <strong>the</strong><br />

source port number 32769.<br />

The telnet c<strong>on</strong>necti<strong>on</strong> establishment needs two packets:<br />

• From <strong>the</strong> source to <strong>the</strong> destinati<strong>on</strong>: <strong>the</strong> source port is 32769, <strong>the</strong> destinati<strong>on</strong> port is 23, <strong>the</strong><br />

header length is 40 bytes, <strong>the</strong> window size is 32762, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> synchr<strong>on</strong>izati<strong>on</strong> bit is set to 1;<br />

• From <strong>the</strong> destinati<strong>on</strong> to <strong>the</strong> source: <strong>the</strong> source port is 23, <strong>the</strong> destinati<strong>on</strong> port is 32769, <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

when <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> is refused, <strong>the</strong> header length is always 20, <strong>the</strong> window size is 0, <str<strong>on</strong>g>and</str<strong>on</strong>g> both<br />

<strong>the</strong> acknowledgement <str<strong>on</strong>g>and</str<strong>on</strong>g> reset bits are set to 1.<br />

Only <strong>the</strong> sequenced number is very difficult to foresee in this case. So, we did not test it.<br />

The following filters were defined:<br />

Filter 2<br />

Filter 3<br />

Descripti<strong>on</strong> TCP_Filter_Init Descripti<strong>on</strong> TCP_Filter_Ack<br />

TCPSrcPort 32769<br />

TCPSrcPort 23<br />

TCPDestPort 23<br />

TCPDestPort 32769<br />

TCPLen 40<br />

TCPLen 20<br />

TCPCtrlSyn 1<br />

TCPCtrlAck 1<br />

CoS 101010<br />

TCPCtrlRst 1<br />

CoS 101110<br />

With <strong>the</strong>se filters, during <strong>the</strong> very first ‘telnet ::1’ executi<strong>on</strong> (no telnet daem<strong>on</strong> was launched, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

c<strong>on</strong>necti<strong>on</strong> had to be refused), E<strong>the</strong>real showed that <strong>the</strong> packets were correctly marked. Then, if we<br />

executed this comm<str<strong>on</strong>g>and</str<strong>on</strong>g> a sec<strong>on</strong>d time, <strong>the</strong>n <strong>the</strong> packets stayed unmarked, because <strong>the</strong> source port of <strong>the</strong><br />

first packet sent had changed (32770).<br />

5.2.2 Sec<strong>on</strong>d tests series<br />

This sec<strong>on</strong>d tests series <strong>on</strong>ly validated <strong>the</strong> new filtering capabilities added in <strong>the</strong> sec<strong>on</strong>d versi<strong>on</strong> of <strong>the</strong><br />

software. Only <strong>the</strong> ‘CoS’ was tested again, but <strong>on</strong>ly because <strong>the</strong> format of this field had changed: in <strong>the</strong><br />

first versi<strong>on</strong>, <strong>the</strong> value of <strong>the</strong> field was <strong>on</strong>ly a DSCP (e.g. 101100), <str<strong>on</strong>g>and</str<strong>on</strong>g> in <strong>the</strong> sec<strong>on</strong>d versi<strong>on</strong>, a service<br />

identifier (e.g. S1, S2,…) could also be used instead.<br />

5.2.2.1 DSCP values loaded from <strong>the</strong> network<br />

We firstly associated new DSCP decimal values to <strong>the</strong> different services, by writing <strong>the</strong> following lines<br />

<strong>on</strong> <strong>the</strong> /dev/dscp character device:<br />

SIG 50<br />

S1 5<br />

S2 10<br />

CEC Deliverable Number D0202 65 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

In /var/log/messages, <strong>the</strong> TUM prints were:<br />

S3 15<br />

S4 20<br />

S5 25<br />

S6 30<br />

S7 35<br />

Apr 10 16:43:37 hathor kernel: dscp: open<br />

Apr 10 16:43:37 hathor kernel: dscp: write<br />

Apr 10 16:43:37 hathor kernel: Service 0 = Name: SIG - DSCP: 0x32<br />

Apr 10 16:43:37 hathor kernel: Service 1 = Name: S1 - DSCP: 0x 5<br />

Apr 10 16:43:37 hathor kernel: Service 2 = Name: S2 - DSCP: 0x A<br />

Apr 10 16:43:37 hathor kernel: Service 3 = Name: S3 - DSCP: 0x F<br />

Apr 10 16:43:37 hathor kernel: Service 4 = Name: S4 - DSCP: 0x14<br />

Apr 10 16:43:37 hathor kernel: Service 5 = Name: S5 - DSCP: 0x19<br />

Apr 10 16:43:37 hathor kernel: Service 6 = Name: S6 - DSCP: 0x1E<br />

Apr 10 16:43:37 hathor kernel: Service 7 = Name: S7 - DSCP: 0x23<br />

Apr 10 16:43:37 hathor kernel: dscp: release<br />

Then, we used <strong>the</strong> following filter:<br />

Filter 1<br />

Descripti<strong>on</strong> Service_ID<br />

IP6DSCP 0<br />

CoS<br />

S4<br />

Finally, we verified with E<strong>the</strong>real that all <strong>the</strong> outgoing packets (with <strong>the</strong> DSCP initialized to ‘0’) were<br />

marked with <strong>the</strong> S4 DSCP value, i.e. 20 (14 in hexadecimal).<br />

5.2.2.2 Destinati<strong>on</strong> Opti<strong>on</strong><br />

5.2.2.2.1 Binding Update (BU)<br />

The different BU fields were tested by triggering h<str<strong>on</strong>g>and</str<strong>on</strong>g>overs. When a MT enters in a new domain, a BU is<br />

sent to its HA. This BU is identified thanks to its opti<strong>on</strong> type value set to 198, <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>tains <strong>the</strong> following<br />

values:<br />

• <strong>the</strong> opti<strong>on</strong> length is set to ‘8’,<br />

• <strong>the</strong> associati<strong>on</strong> life time is set to ‘10000’,<br />

• <strong>the</strong> length of <strong>the</strong> prefix to use for MT addresses is set to ‘0’,<br />

• <strong>the</strong> BU acknowledgement request, <strong>the</strong> HA request, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> Mobile Router bits are set to ‘1’,<br />

while <strong>the</strong> Duplicate Address Detecti<strong>on</strong> request, <strong>the</strong> MAP registrati<strong>on</strong>, <strong>the</strong> Bicasting request <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

<strong>the</strong> two reserved bits are set to ‘0’,<br />

• <strong>the</strong> BU sequence number is linearly increased, so that we were able to foresee a specific value;<br />

in this test, we have triggered several h<str<strong>on</strong>g>and</str<strong>on</strong>g>overs while <strong>the</strong> sequenced number reached <strong>the</strong> value<br />

‘80’.<br />

So, <strong>the</strong> following filter was defined:<br />

Filter 1<br />

Descripti<strong>on</strong> BU_Filter<br />

ExtBULg 8<br />

ExtBUA 1<br />

ExtBUH 1<br />

ExtBUR 1<br />

ExtBUD 0<br />

ExtBUMAPReg 0<br />

ExtBUBicast 0<br />

ExtBUResv 0<br />

ExtBUSeqNum 80<br />

ExtBULTime 10000<br />

CoS<br />

SIG<br />

CEC Deliverable Number D0202 66 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Note that <strong>the</strong> ExtBU filtering rule <strong>on</strong>ly allows <strong>the</strong> detecti<strong>on</strong> of a BU in each packet. We tested this field<br />

by replacing all <strong>the</strong> previous rules by <strong>the</strong> following <strong>on</strong>e: ‘ExtBU 1’.<br />

5.2.2.2.2 Binding Acknowledgement (BA)<br />

When a BU is sent with a BU acknowledgment request bit set to ‘1’, <strong>the</strong> HA sends a BA to <strong>the</strong> MT. So,<br />

during <strong>the</strong> same test than <strong>the</strong> BU, we m<strong>on</strong>itored <str<strong>on</strong>g>and</str<strong>on</strong>g> filtered <strong>the</strong> outgoing packets <strong>on</strong> <strong>the</strong> HA. The<br />

following filter was used:<br />

Filter 1<br />

Descripti<strong>on</strong> BA_Filter<br />

ExtBALg 11<br />

ExtBAStatus 131<br />

ExtBASeq 0<br />

ExtBALTime 1000<br />

ExtBARefresh 10000<br />

CoS<br />

SIG<br />

Due to c<strong>on</strong>figurati<strong>on</strong> issues, <strong>the</strong> BU sent by <strong>the</strong> MT to <strong>the</strong> HA was systematically refused, which was a<br />

good opportunity to test a particular value of <strong>the</strong> BA status (131).<br />

5.2.2.2.3 Home Address (HoA)<br />

The HoA opti<strong>on</strong> is included in <strong>the</strong> same packet than <strong>the</strong> BU, <str<strong>on</strong>g>and</str<strong>on</strong>g> is sent to <strong>the</strong> CN. So, this test could be<br />

d<strong>on</strong>e at <strong>the</strong> same time than <strong>the</strong> BU test, with a sec<strong>on</strong>d filter:<br />

Filter 2<br />

Descripti<strong>on</strong> HoA_Filter<br />

ExtHoALg 16<br />

ExtHoAAddr fec0::1234:a:b:c:d<br />

CoS<br />

SIG<br />

Of course, ‘fec0::1234:a:b:c:d’ was <strong>the</strong> MT HoA, <str<strong>on</strong>g>and</str<strong>on</strong>g> was a 16 bytes length address.<br />

5.2.2.2.4 Binding Request (BR)<br />

Not tested.<br />

5.2.2.3 Hop-by-hop Opti<strong>on</strong><br />

Not tested.<br />

5.2.2.4 Sub-opti<strong>on</strong>s<br />

Not tested. However, <strong>the</strong> opti<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> sub-opti<strong>on</strong> detecti<strong>on</strong> is d<strong>on</strong>e by a same functi<strong>on</strong> able to parse opti<strong>on</strong>s<br />

encoded with <strong>the</strong> TLV format. This functi<strong>on</strong> has been successfully tested with <strong>the</strong> different Destinati<strong>on</strong><br />

Opti<strong>on</strong>s, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> Pad <str<strong>on</strong>g>and</str<strong>on</strong>g> PadN opti<strong>on</strong>s. So, it seems reas<strong>on</strong>able to think that sub-opti<strong>on</strong>s detecti<strong>on</strong> cannot<br />

cause any problem.<br />

5.2.2.5 Fragment header<br />

The original Maximum Transmissi<strong>on</strong> Unit (MTU) of an IPv6 packet is 1500 bytes. To test <strong>the</strong> fragment<br />

header fields, we generated a UDP flow with a packet size set to 2000 bytes, thanks to <strong>the</strong> ‘mgen6’<br />

comm<str<strong>on</strong>g>and</str<strong>on</strong>g>, with <strong>the</strong> ‘-s 2000’ opti<strong>on</strong>. During <strong>the</strong> test, <strong>the</strong> fragment identifier was increasing linearly, so<br />

that we could foresee a packet with this identifier set to ‘10’. The M bit in <strong>the</strong> fragment header is set to ‘1’<br />

in all <strong>the</strong> fragments of <strong>the</strong> same packet, excepted for <strong>the</strong> last <strong>on</strong>e. With a packet size set to ‘2000’, each<br />

packet was divided in two fragments, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>on</strong>ly <strong>the</strong> first fragment had <strong>the</strong> M bit set to ‘1’, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

fragment place set to ‘0’. All <strong>the</strong>se fields were tested with <strong>the</strong> following filter:<br />

Filter 1<br />

Descripti<strong>on</strong> Fragment_Filter<br />

ExtFragId 10<br />

ExtFragM 1<br />

ExtFragPlace 0<br />

CoS<br />

S6<br />

CEC Deliverable Number D0202 67 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

The ExtFrag filtering rule was tested separately, with a filter c<strong>on</strong>taining <strong>on</strong>ly <strong>on</strong>e rule: ‘ExtFrag 1’.<br />

5.2.2.6 Routing header<br />

The routing header fields were tested at <strong>the</strong> same time than <strong>the</strong> BU, BA <str<strong>on</strong>g>and</str<strong>on</strong>g> HoA. In fact, <strong>the</strong> packet<br />

which c<strong>on</strong>tained <strong>the</strong> BA going from <strong>the</strong> HA to <strong>the</strong> AR also c<strong>on</strong>tained a routing header. The goal of this<br />

routing header was to impose <strong>the</strong> path <strong>the</strong> BA had to follow, including <strong>the</strong> destinati<strong>on</strong>. For <strong>the</strong>se tests, <strong>the</strong><br />

HA was directly linked to <strong>the</strong> AR. Thus, <strong>the</strong> path c<strong>on</strong>tained <strong>on</strong>ly <strong>the</strong> destinati<strong>on</strong>, i.e. <strong>the</strong> MT address<br />

(fec0::1234:a:b:c:d), <strong>the</strong> route length was set to ‘2’ (this is <strong>the</strong> size of <strong>the</strong> path in number of 64 bits<br />

words), <strong>the</strong> route type set to ‘0’ (i.e. source routing) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> number of remaining segments set to ‘1’.<br />

Two filters were used successively, with <strong>the</strong> same results:<br />

Filter 1<br />

Filter 1<br />

Descripti<strong>on</strong> Routing_Header Descripti<strong>on</strong> Routing_Header<br />

ExtRoutLg 2<br />

ExtRoutLg 2<br />

ExtRoutType 0<br />

ExtRoutType 0<br />

ExtRoutSeg 1<br />

ExtRoutSeg 1<br />

ExtRoutAddrN fec0::1234:a:b:c:d ExtRoutAddrDest fec0::1234:a:b:c:d<br />

CoS<br />

SIG<br />

CoS<br />

SIG<br />

5.2.2.7 Au<strong>the</strong>nticati<strong>on</strong> header<br />

Only <strong>the</strong> presence of <strong>the</strong> header was tested.<br />

5.2.2.8 ESP header<br />

Only <strong>the</strong> presence of <strong>the</strong> header was tested.<br />

5.2.2.9 ICMPv6 header<br />

ping6 <str<strong>on</strong>g>and</str<strong>on</strong>g> mgen6 were both used. The detecti<strong>on</strong> of an ICMPv6 packet (i.e. <strong>the</strong> ICMP6Header field) was<br />

tested with ‘ping6 ::1’. The type <str<strong>on</strong>g>and</str<strong>on</strong>g> code fields of each ICMPv6 packet were tested with mgen6. By<br />

initiating a UDP flow <strong>on</strong> a bad output port (50235, for ex.), with ‘mgen6 –b ::1,50235’, an ICMPv6<br />

packet was created with type set to ‘1’ <str<strong>on</strong>g>and</str<strong>on</strong>g> code set to ‘4’ (port unreachable). Then, <strong>the</strong>se two fields could<br />

be tested at <strong>the</strong> same time with <strong>the</strong> following filter:<br />

Filter 1<br />

Descripti<strong>on</strong> ICMP6_Filter<br />

ICMP6Type 1<br />

ICMP6Code 4<br />

CoS<br />

SIG<br />

5.2.2.10 Tunneled packets inner header<br />

Only <strong>the</strong> presence of <strong>the</strong> header was tested.<br />

5.3 Radio resource management tests<br />

These test have been performed as part of several integrati<strong>on</strong> meetings.<br />

The first test took place in <strong>the</strong> last quarter of 2002. At this first stage, when <strong>the</strong> RRC c<strong>on</strong>necti<strong>on</strong> is<br />

established, it triggers <strong>the</strong> automatic establishment of <strong>the</strong> signaling radio bearers for <strong>the</strong> c<strong>on</strong>trol path, <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

of a single dedicated channel for <strong>the</strong> data path. The Transport Channels used are: <strong>the</strong> BCH (Broadcast<br />

Channel), <strong>the</strong> FACH / RACH (comm<strong>on</strong> channels) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>on</strong>e DCH (dedicated channel, mainly for data).<br />

The data channel provides a data rate of 144 kbps <strong>on</strong> <strong>the</strong> Uplink (MT to RG), 384 kbps peak rate <strong>on</strong> <strong>the</strong><br />

Downlink (RG to UE). The main parameters used for c<strong>on</strong>figuring <strong>the</strong>ses channels are: 3 time slots, 5<br />

Transport Formats, a c<strong>on</strong>voluti<strong>on</strong> code ½, a TTI of 10 ms <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> RLC in AM mode.<br />

Several types of traffic could flow through <strong>the</strong> interface: ICMPv6 (PING), Web (http), video<br />

transmissi<strong>on</strong>.<br />

We could visualize <strong>the</strong> correct slot utilizati<strong>on</strong> according to <strong>the</strong> desired TDD c<strong>on</strong>figurati<strong>on</strong>.<br />

This test validated <strong>the</strong> executi<strong>on</strong> of <strong>the</strong> Real Time TD-CDMA over <strong>the</strong> air interface <str<strong>on</strong>g>and</str<strong>on</strong>g> its direct<br />

interc<strong>on</strong>necti<strong>on</strong> to IPv6.<br />

CEC Deliverable Number D0202 68 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

The sec<strong>on</strong>d sessi<strong>on</strong> tested <strong>the</strong> whole chain: Mobile Terminal- Radio Gateway – Access Router. When <strong>the</strong><br />

TD-CDMA Radio Gateway is started, we can m<strong>on</strong>itor <strong>the</strong> transmissi<strong>on</strong> of <strong>the</strong> broadcast, c<strong>on</strong>taining <strong>the</strong><br />

comm<strong>on</strong> channels (RACH-FACH) c<strong>on</strong>figurati<strong>on</strong> determined in <strong>the</strong> Access Stratum.<br />

When <strong>the</strong> TD-CDMA Mobile Terminal is started, it m<strong>on</strong>itors <strong>the</strong> broadcast channel <str<strong>on</strong>g>and</str<strong>on</strong>g> retrieves <strong>the</strong><br />

comm<strong>on</strong> channels parameters. When <strong>the</strong> attachment to <strong>the</strong> network is triggered, we can m<strong>on</strong>itor <strong>the</strong> setup<br />

of <strong>the</strong> comm<strong>on</strong> transport channels based <strong>on</strong> <strong>the</strong> retrieved parameters <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>n of <strong>the</strong> signalling radio<br />

bearers.<br />

Then a PING6 comm<str<strong>on</strong>g>and</str<strong>on</strong>g> is entered in <strong>the</strong> MT. This triggers <strong>the</strong> computati<strong>on</strong> of a new c<strong>on</strong>figurati<strong>on</strong> in <strong>the</strong><br />

RRM <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> upload of this c<strong>on</strong>figaurati<strong>on</strong> in <strong>the</strong> Mobile Terminal, resulting in <strong>the</strong> set-up of a radio<br />

bearer for data transmissi<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g>, when ready, <strong>the</strong> transmissi<strong>on</strong> of <strong>the</strong> PING6 packet up to <strong>the</strong> Access<br />

Router <str<strong>on</strong>g>and</str<strong>on</strong>g> backwards. The DSCP Marking Software has been installed as well <str<strong>on</strong>g>and</str<strong>on</strong>g> we could verify that<br />

<strong>the</strong> packets could be marked <strong>on</strong> request.<br />

As before, we could visualize <strong>the</strong> correct slot utilizati<strong>on</strong> according to <strong>the</strong> desired TDD c<strong>on</strong>figurati<strong>on</strong>.<br />

For <strong>the</strong> last seesi<strong>on</strong>, <strong>the</strong> RRM entity was modified to provide c<strong>on</strong>figurati<strong>on</strong>s for up to 3 MTs, having each<br />

<strong>on</strong>e 2 different radio bearers, according to <strong>the</strong> requested <strong>QoS</strong> class.<br />

o For class R2, mapped from service S1 (class EF), <strong>the</strong> RB is a duplex DCH 32 kbps,<br />

with real-time capabilities<br />

o For class R9, mapped from service S6 (class BE), <strong>the</strong> RB is a DCH with 256 kbps DL<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> RACH for <strong>the</strong> UL<br />

The signalling traffic is <strong>on</strong> <strong>the</strong> comm<strong>on</strong> channels, whose b<str<strong>on</strong>g>and</str<strong>on</strong>g>width has been increased.<br />

This is shown in picture 68 taken during <strong>the</strong> last test, where vic was dem<strong>on</strong>strated.<br />

Figure 68: Picture from <strong>the</strong> integrati<strong>on</strong> test in Stuttgart<br />

This picture shows <strong>the</strong> Radio Gateway <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> Mobile Terminal during <strong>the</strong> test. On <strong>the</strong> left m<strong>on</strong>itor <strong>the</strong><br />

TD-CDMA visualizati<strong>on</strong> tool shows <strong>the</strong> traffic flowing <strong>on</strong> <strong>the</strong> TDD slots in <strong>the</strong> Radio Gateway. The<br />

yellow shows <strong>the</strong> amplitude of <strong>the</strong> received signal <strong>on</strong> <strong>the</strong> time line. The red shows <strong>the</strong> power of signal<br />

received in <strong>the</strong> slots. The video is received <strong>on</strong> <strong>the</strong> Mobile Terminal.<br />

6. C<strong>on</strong>clusi<strong>on</strong>s<br />

In summary, <strong>the</strong> main milest<strong>on</strong>es of Workpackage 2 effort can be mapped to three integrati<strong>on</strong> meetings<br />

that were held for integrati<strong>on</strong>, test <str<strong>on</strong>g>and</str<strong>on</strong>g> evaluati<strong>on</strong> purposes within <strong>the</strong> framework of WP5:<br />

• Our first integrati<strong>on</strong> meeting was in Madrid in October 2002. The first versi<strong>on</strong> of a running <strong>QoS</strong><br />

Broker was deployed <str<strong>on</strong>g>and</str<strong>on</strong>g> its communicati<strong>on</strong> with a AAAC Attendant running pep6 was tested.<br />

Likewise, <strong>the</strong> <strong>QoS</strong> Attendant was successfully installed <str<strong>on</strong>g>and</str<strong>on</strong>g> tested.<br />

• The sec<strong>on</strong>d integrati<strong>on</strong> meeting, held in Nice in March 2003, gave us <strong>the</strong> opportunity to test <strong>the</strong><br />

interface between two <strong>QoS</strong> Brokers, as well as <strong>the</strong> interacti<strong>on</strong> between a <strong>QoS</strong> Broker <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong><br />

CEC Deliverable Number D0202 69 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

B<str<strong>on</strong>g>and</str<strong>on</strong>g>width Manager. We also updated <strong>the</strong> Access Router interface in order to enable it to receive<br />

FHO messages so that we could test <strong>the</strong> support for Fast H<str<strong>on</strong>g>and</str<strong>on</strong>g>over mechanisms. Finally, we also<br />

updated <strong>the</strong> AAAC interface to receive <strong>QoS</strong> profiles definiti<strong>on</strong>. Note that although <strong>the</strong> <strong>QoS</strong><br />

mapping between IP <str<strong>on</strong>g>and</str<strong>on</strong>g> radio was already defined at that time, <strong>on</strong>ly <strong>on</strong>e MT <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>on</strong>e data<br />

channel were supported <strong>the</strong>n.<br />

• During <strong>the</strong> last integrati<strong>on</strong> meeting in Stuttgart in May 2003 we came up with a complete <strong>QoS</strong><br />

soluti<strong>on</strong> including <strong>the</strong> <strong>QoS</strong> Broker with its complete functi<strong>on</strong>ality. These <strong>QoS</strong> comp<strong>on</strong>ents were<br />

integrated with <strong>the</strong> AAAC system <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> mobility system. Based <strong>on</strong> this architecture, we<br />

dem<strong>on</strong>strated three <strong>QoS</strong> scenarios.<br />

The integrati<strong>on</strong> is now almost finished: all should be finished by mid-June 2003. We plan to start <strong>the</strong><br />

measurements <strong>the</strong>n, in order to have performance evaluati<strong>on</strong> of our test-bed, before <strong>the</strong> trials with real,<br />

n<strong>on</strong> technical users begin in July 2003.<br />

7. References<br />

[1] An Architecture for Differentiated Service. S. Blake, D. Black, M. Carls<strong>on</strong>, E. Davies, Z. Wang, W.<br />

Weiss. December 1998.<br />

[2] A. Mokhtar, N. Chaher, Ch. Beaujean, P. Pacyna, J. Gozdecki, K. Dolzer, J. Gerke, V. Marques, R.<br />

Aguiar, J. I. Moreno, C. Garcia, T. Ziegler, Y. Moret, M. Wetterwald, „Initial Design <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

Specificati<strong>on</strong> of <strong>the</strong> Moby Dick <strong>QoS</strong> Architecture“, Moby Dick Deliverable D0201, 85 pages, April<br />

2002.<br />

[3] V. Marques et al, An IP-based <strong>QoS</strong> architecture for 4G operator scenarios, IEEE Wireless<br />

Communicati<strong>on</strong>s, 2003.<br />

[4] 3GPP TS 25.331 V4.5.0 (2002-06), 3rd Generati<strong>on</strong> Partnership Project; Technical Specificati<strong>on</strong><br />

Group Radio Access Network; Radio Resource C<strong>on</strong>trol (RRC); Protocol Specificati<strong>on</strong> (Release 4)<br />

CEC Deliverable Number D0202 70 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

8. APPENDIX A: QUALITY OF SERVICE CONFIGURATION<br />

In this secti<strong>on</strong> we will see both <strong>QoS</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> policing structures that are created when Router starts up<br />

governed by <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong> files in <strong>the</strong> <strong>QoS</strong>Broker. Also we are going to present <strong>the</strong> authorizati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

rec<strong>on</strong>figurati<strong>on</strong> processes.<br />

8.1 <strong>QoS</strong>Broker c<strong>on</strong>figurati<strong>on</strong> files<br />

When <strong>the</strong> <strong>QoS</strong>Broker starts up it loads two c<strong>on</strong>figurati<strong>on</strong> files. The first of <strong>the</strong>m is called <strong>the</strong> ‘politics file’<br />

that is <strong>the</strong> <strong>on</strong>e in charge of associating traffics’ policing specificati<strong>on</strong> parameters –as <strong>the</strong> b<str<strong>on</strong>g>and</str<strong>on</strong>g>width, <strong>the</strong><br />

burst <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> priority– to traffic’s DSCPs. Indeed this file is not loaded by <strong>the</strong> <strong>QoS</strong>Broker locally but sent<br />

to it by <strong>the</strong> AAAC.f. The sec<strong>on</strong>d file is called <strong>the</strong> ‘behaviour file’ <str<strong>on</strong>g>and</str<strong>on</strong>g> it is <strong>the</strong> <strong>on</strong>e in charge of associating<br />

<strong>the</strong> DiffServ DSCPs to different <strong>QoS</strong> queues c<strong>on</strong>figurati<strong>on</strong>s (PHBs).<br />

The politics file has a list structure <str<strong>on</strong>g>and</str<strong>on</strong>g> is used when <strong>the</strong> AAAC.f indicates <strong>the</strong> <strong>QoS</strong>Broker <strong>the</strong> DSCPs that<br />

<strong>the</strong> MTs, in this domain, will use to mark traffics. The AAAC.f also communicates to <strong>the</strong> <strong>QoS</strong>Broker <strong>the</strong><br />

policing parameters of <strong>the</strong> “NetServices” that <strong>the</strong>se DSCPs require. Those DSCPs are also forwarded to<br />

<strong>the</strong> MT <str<strong>on</strong>g>and</str<strong>on</strong>g> it will use <strong>the</strong>m to mark its packets. When those packets pass through <strong>the</strong> Access Router, it<br />

makes a petiti<strong>on</strong> to <strong>the</strong> <strong>QoS</strong>Broker to know if it should police that traffic towards <strong>the</strong> core network or if it<br />

should not give policing to <strong>the</strong>m, i.e. discard <strong>the</strong>m. The <strong>QoS</strong>Broker looks at <strong>the</strong>ir installed c<strong>on</strong>necti<strong>on</strong>s<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> resp<strong>on</strong>ds it yes or not. When <strong>the</strong> <strong>QoS</strong>Broker authorizes a traffic towards <strong>the</strong> MobyDick’s core<br />

network, <strong>the</strong> router also obtains from this file <strong>the</strong> policing informati<strong>on</strong> (BW <str<strong>on</strong>g>and</str<strong>on</strong>g> burst) necessary in <strong>the</strong><br />

<strong>QoS</strong>Manager. The policy file used in <strong>the</strong> test is shown in Table 8:<br />

Destinati<strong>on</strong><br />

address<br />

Traffic’s BW<br />

(kbps)<br />

Burst size<br />

(Bytes)<br />

Priority DSCP<br />

(hex)<br />

::0 0 0 0 0<br />

::0 100 1514 1 2e<br />

::0 90 1514 2 22<br />

::0 80 1514 2 24<br />

::0 70 1514 2 26<br />

::0 60 1514 3 1a<br />

::0 50 1514 3 1c<br />

::0 40 1514 3 1e<br />

::0 30 1514 4 12<br />

::0 20 1514 4 14<br />

::0 10 1514 4 16<br />

::0 9 1514 5 0a<br />

::0 8 1514 5 0c<br />

::0 7 1514 5 0e<br />

Table 8: politics file table used in <strong>the</strong> tests<br />

It must be noted that this table is <strong>on</strong>ly used for tests, moby dick will employ <strong>the</strong> following Table 9:<br />

Destinati<strong>on</strong><br />

address<br />

Traffic’s<br />

BW (kbps)<br />

Burst size<br />

(Bytes)<br />

Priority DSCP<br />

(hex)<br />

::0 1 1514 2 0x22<br />

::0 32 1514 1 0x2e<br />

::0 256 1514 3 0x12<br />

::0 64 1514 4 0x0a<br />

::0 128 1514 4 0x0c<br />

::0 256 1514 4 0x0e<br />

::0 32 1514 0 0x00<br />

::0 64 1514 0 0x02<br />

::0 256 1514 0 0x04<br />

Table 9: Policy table used in Moby Dick<br />

CEC Deliverable Number D0202 71 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

The first column in this table describes <strong>the</strong> traffic’s destinati<strong>on</strong> address allowed to send packets to having<br />

<strong>the</strong> DSCP indicated <strong>on</strong> <strong>the</strong> fifth column. If this value is ‘::0’ all destinati<strong>on</strong> addresses are authorized. The<br />

sec<strong>on</strong>d <str<strong>on</strong>g>and</str<strong>on</strong>g> third columns are <strong>the</strong> policer informati<strong>on</strong>, <strong>the</strong> fourth <strong>the</strong> priority <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> fifth is <strong>the</strong> DiffServ<br />

DSCP authorized field.<br />

Experimental tests have shown that <strong>the</strong> minimum burst size depends <strong>on</strong> <strong>the</strong> b<str<strong>on</strong>g>and</str<strong>on</strong>g>width this way:<br />

min_ burst _ size = b<str<strong>on</strong>g>and</str<strong>on</strong>g>width ⋅5⋅<br />

MTU<br />

With <strong>the</strong> 'b<str<strong>on</strong>g>and</str<strong>on</strong>g>width' in Mbps. The obtained result units are bytes. If <strong>the</strong> result is smaller than <strong>the</strong> MTU<br />

<strong>the</strong> burst size must be <strong>the</strong> MTU.<br />

The behaviour file has also a list structure <str<strong>on</strong>g>and</str<strong>on</strong>g> is used when <strong>the</strong> Router requests <strong>the</strong> <strong>QoS</strong>Broker <strong>the</strong><br />

access interface <strong>QoS</strong> c<strong>on</strong>figurati<strong>on</strong> queues <str<strong>on</strong>g>and</str<strong>on</strong>g> its associates DSCPs.<br />

The first time that <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong> list is transferred is, as we have already seen, when <strong>the</strong> Router starts<br />

up. It is transferred line by line in a COPS ‘C<strong>on</strong>figurati<strong>on</strong> Decisi<strong>on</strong>’ message.<br />

In <strong>the</strong> following Table 10 we can see <strong>the</strong> behaviour list that we have used for <strong>the</strong> tests. Next we will<br />

comment all its fields <str<strong>on</strong>g>and</str<strong>on</strong>g> properties.<br />

DSCP<br />

(hex)<br />

Aggregate<br />

number<br />

BW<br />

(kbps)<br />

Borrow<br />

BW?<br />

RIO minimum<br />

queue size<br />

(kB)<br />

RIO maximum<br />

queue size<br />

(kB)<br />

RIO limit<br />

queue size<br />

(kB)<br />

RIO queue<br />

discard<br />

Probability(%)<br />

0 0 0 1 0 0 0 0<br />

2e 1 800 0 0 0 0 0<br />

22 2 700 0 500 700 1000 10<br />

24 2 600 0 400 600 750 25<br />

26 2 500 0 300 500 600 50<br />

1a 3 400 0 250 500 750 10<br />

1c 3 300 0 200 400 600 25<br />

1e 3 200 0 150 300 400 50<br />

12 4 100 0 150 250 300 10<br />

14 4 90 0 100 200 250 25<br />

16 4 80 0 50 100 150 50<br />

0a 5 70 0 10 40 60 10<br />

0c 5 60 0 5 15 25 25<br />

0e 5 50 0 3 10 15 50<br />

Table 10: Behaviour file table employed for <strong>the</strong> tests<br />

We must note that <strong>the</strong> previous table was <strong>on</strong>ly used for <strong>the</strong> tests. Moby dick should employ <strong>the</strong> following<br />

table (Table 11). In this table (tailored to 100 Mbps E<strong>the</strong>rnet access interface) <strong>on</strong>ly <strong>the</strong> first two columns<br />

are immutable. The rest can be changed <str<strong>on</strong>g>and</str<strong>on</strong>g> build, for instance, a table valid for 2Mbps WLAN access<br />

interface.<br />

DSCP<br />

(hex)<br />

Aggregate<br />

number<br />

BW<br />

(kbps)<br />

Borrow<br />

BW?<br />

RIO<br />

minimum<br />

queue<br />

size (kB)<br />

RIO<br />

maximum<br />

queue<br />

size (kB)<br />

RIO limit<br />

queue<br />

size (kB)<br />

RIO queue<br />

discard<br />

Probability(%)<br />

0x00 0 15000 1 0 0 0 0<br />

0x2e 1 25000 0 0 0 0 0<br />

0x22 2 5000 0 250 500 600 10<br />

0x12 3 25000 0 1250 2500 3000 10<br />

0x0a 4 15000 0 750 1500 2000 10<br />

0x0c 4 10000 0 500 1000 1250 25<br />

0x0e 4 5000 0 250 500 600 50<br />

Table 11: Example of behaviour table employed in Moby Dick<br />

CEC Deliverable Number D0202 72 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Its fields are:<br />

- DSCP: all packets thru <strong>the</strong> access interface having <strong>the</strong> specified DSCP will be routed to <strong>the</strong><br />

queue described by <strong>the</strong> o<strong>the</strong>r fields of <strong>the</strong> row.<br />

- Aggregate number: this value indicates to which queue (CBQ discipline class) a flow must be<br />

routed <strong>on</strong> <strong>the</strong> access interface. This field has <strong>the</strong> following particularities:<br />

o The ‘0’ aggregate number is reserved for <strong>the</strong> default or best-effort traffic. This traffic<br />

doesn't need a RIO/GRED queue planning so all <strong>the</strong> following parameters are ignored.<br />

We can <strong>on</strong>ly have a line with this number. All <strong>the</strong> access flows having a DSCP not<br />

registered in <strong>the</strong> table will be headed to this queue. If we put in this aggregate 0 kbps,<br />

all default packets will be discarded.<br />

o The ‘1’ aggregate number is reserved for <strong>the</strong> maximum priority traffic called Expedited<br />

Forwarding (EF) <str<strong>on</strong>g>and</str<strong>on</strong>g> for signaling. Towards this aggregate all messages that <strong>the</strong> Router<br />

generates, including those of <strong>the</strong> COPS, DIAMETER <str<strong>on</strong>g>and</str<strong>on</strong>g> ICMPv6 protocol will be<br />

routed. This traffic doesn't need a RIO/GRED queue planning so all <strong>the</strong> following<br />

parameters are ignored. We can <strong>on</strong>ly have a row with this number.<br />

o The o<strong>the</strong>r aggregate numbers (from ‘2’) are used for Assured Forwarding (AF) or<br />

independent classes, <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>ir priorities descend in <strong>the</strong> same value that <strong>the</strong>ir aggregate<br />

number. This aggregate type allows 4 c<strong>on</strong>figurati<strong>on</strong>s:<br />

A CBQ independent class: if <strong>the</strong>re is <strong>on</strong>ly a row with this aggregate number<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> if it doesn't have <strong>the</strong> RIO discipline parameters. In this case a CBQ class is<br />

created for that DSCP without RIO planning.<br />

A CBQ independent class with RIO discipline: if <strong>the</strong>re is <strong>on</strong>ly a row with this<br />

aggregate number <str<strong>on</strong>g>and</str<strong>on</strong>g> it has <strong>the</strong> RIO discipline parameters. In that case a CBQ<br />

class is created for that DSCP with its indicated RIO queue planner.<br />

More than a CBQ class: if <strong>the</strong>re are several rows with <strong>the</strong> same aggregate<br />

number <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>y d<strong>on</strong>'t have any RIO discipline parameters. In this case <strong>on</strong>ly<br />

<strong>on</strong>e CBQ class is created for all <strong>the</strong> DSCPs (DSCP class) without RIO<br />

planning. The CBQ class b<str<strong>on</strong>g>and</str<strong>on</strong>g>width will be <strong>the</strong> b<str<strong>on</strong>g>and</str<strong>on</strong>g>width rows sum.<br />

<br />

More than a CBQ class with RIO disciplines (typical AF): if <strong>the</strong>re are several<br />

rows with <strong>the</strong> same aggregate number <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>y all have <strong>the</strong> RIO discipline<br />

parameters. In this case <strong>on</strong>ly a CBQ class is created for all <strong>the</strong> DSCPs (DSCP<br />

class) with an independent RIO queue planner for each DSCP as <strong>the</strong>ir<br />

parameters indicate. Usually, in AF, <strong>the</strong>re are three rows with <strong>the</strong> same<br />

aggregate number; this is because inside an AF class <strong>the</strong>re are three traffic<br />

types according to <strong>the</strong> queues capacities. The Router checks <strong>the</strong> aggregate<br />

number repetiti<strong>on</strong>s in this field <str<strong>on</strong>g>and</str<strong>on</strong>g> adds its b<str<strong>on</strong>g>and</str<strong>on</strong>g>widths in <strong>on</strong>e CBQ class.<br />

Also, <strong>the</strong> Router creates a RIO planning algorithm for each DSCP with <strong>the</strong><br />

parameters that we will see later.<br />

- B<str<strong>on</strong>g>and</str<strong>on</strong>g>width: <strong>the</strong> third parameter is <strong>the</strong> reserved b<str<strong>on</strong>g>and</str<strong>on</strong>g>width for each DSCP. When a class is<br />

formed by several DSCPs (usually in AF) <strong>the</strong> b<str<strong>on</strong>g>and</str<strong>on</strong>g>width of that class will be <strong>the</strong> sum of all <strong>the</strong><br />

rows’ b<str<strong>on</strong>g>and</str<strong>on</strong>g>widths with <strong>the</strong> same aggregate number. This value is expressed in kbps.<br />

- B<str<strong>on</strong>g>and</str<strong>on</strong>g>width Borrow Flag: this interesting parameter allows, to <strong>the</strong> aggregate which has it set to<br />

‘1’, to use <strong>the</strong> b<str<strong>on</strong>g>and</str<strong>on</strong>g>width that o<strong>the</strong>r classes are not using <str<strong>on</strong>g>and</str<strong>on</strong>g>/or <strong>the</strong> remaining BW <strong>on</strong> <strong>the</strong><br />

interface. Related with this parameter <strong>the</strong>re is ano<strong>the</strong>r <strong>on</strong>e called ‘isolated class’ that allows a<br />

class not to lend its remaining b<str<strong>on</strong>g>and</str<strong>on</strong>g>width. In our Router we have chosen to enable in all classes<br />

<strong>the</strong> previous hidden flag. Therefore, <strong>the</strong> maximum class b<str<strong>on</strong>g>and</str<strong>on</strong>g>width that is created when <strong>the</strong><br />

borrow flag is activated will vary in functi<strong>on</strong> of <strong>the</strong> o<strong>the</strong>r classes occupati<strong>on</strong> but having a<br />

minimum b<str<strong>on</strong>g>and</str<strong>on</strong>g>width benchmark equals to <strong>the</strong> reserved with its ‘BW’ parameter in <strong>the</strong> list. In<br />

some tests we have used this field for <strong>the</strong> ‘best-effort’ traffic.<br />

- (Average) minimum RIO queue size: This parameter indicates <strong>the</strong> average minimum RIO<br />

queue capacity associated to a DSCP. If <strong>the</strong> average enqueued size surpasses this capacity <strong>the</strong><br />

packet dropping will begin. In ‘0’ <str<strong>on</strong>g>and</str<strong>on</strong>g> ‘1’ aggregates this parameter is obviated. The RIO queue<br />

will be created by means of a GRED discipline. This parameter is expressed in kBytes.<br />

- (Average) maximum RIO queue size: This parameter indicates <strong>the</strong> average maximum RIO<br />

queue capacity associated to a DSCP. The queue size that reaches this value (in average) will<br />

experience a drop probability in <strong>the</strong>ir packets similar to <strong>the</strong> value that is indicated in <strong>the</strong> ‘RIO<br />

drop probability’ parameter. Bey<strong>on</strong>d this threshold all new packets that surpass <strong>the</strong> size will be<br />

discarded. In ‘0’ <str<strong>on</strong>g>and</str<strong>on</strong>g> ‘1’ aggregates this parameter is obviated. This parameter is expressed in<br />

kBytes.<br />

- RIO limit queue size: This parameter indicates <strong>the</strong> physical capacity that <strong>the</strong> TC API reserves to<br />

a RIO queue associated to a DSCP. If <strong>the</strong> real queue capacity (not average) reaches this value, all<br />

CEC Deliverable Number D0202 73 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

new packets will be discarded for any average occupati<strong>on</strong> value. In <strong>the</strong> ‘0’ <str<strong>on</strong>g>and</str<strong>on</strong>g> ‘1’ aggregates<br />

this parameter is obviated. This parameter is expressed in kBytes.<br />

- RIO queue drop probability: This parameter indicates <strong>the</strong> discard probability that a packet has<br />

if <strong>the</strong> average maximum RIO queue size is reached. This parameter, toge<strong>the</strong>r with <strong>the</strong> two first<br />

<strong>on</strong>es, fixes <strong>the</strong> RIO discard probability straight line (see TC API RIO implementati<strong>on</strong> for details<br />

<strong>on</strong> this). In ‘0’ <str<strong>on</strong>g>and</str<strong>on</strong>g> ‘1’ aggregates this parameter is obviated. This parameter is expressed as a<br />

percent of discards.<br />

We have to highlight that in <strong>the</strong> described behaviour list we have used <strong>the</strong> IANA DSCPs st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard codes<br />

assigned to BE, EF <str<strong>on</strong>g>and</str<strong>on</strong>g> AFxy classes. Never<strong>the</strong>less, <strong>the</strong> file does not tie DSCPs with queue types:<br />

changing values <strong>on</strong> <strong>the</strong> DSCP column we could assign, for example, to <strong>the</strong> ‘0x0E’ DSCP <strong>the</strong> EF queue by<br />

putting in it <strong>the</strong> ‘1’ aggregate number.<br />

It is also important to recall that <strong>the</strong> GRED queue disciplines choose <strong>the</strong> RIO queue associated to a packet<br />

in functi<strong>on</strong> of <strong>the</strong> last three bits of <strong>the</strong> DSCP, that is because <strong>the</strong> Router extracts <strong>the</strong>se bits of <strong>the</strong> DSCP<br />

field <str<strong>on</strong>g>and</str<strong>on</strong>g> creates its corresp<strong>on</strong>ding RIO queue (VQ). Never<strong>the</strong>less, for a good operati<strong>on</strong>, <strong>the</strong> router needs<br />

that in each AF class exists a DSCP finished in ‘100’ (4) to take it as <strong>the</strong> default RIO queue.<br />

8.2 <strong>QoS</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> policing trees created <strong>on</strong> <strong>the</strong> Router<br />

When <strong>the</strong> router starts up, it opens two netlink socket sessi<strong>on</strong>s with <strong>the</strong> kernel’s DiffServ logic (<strong>on</strong>e for<br />

each interface) <str<strong>on</strong>g>and</str<strong>on</strong>g> obtains <strong>the</strong> necessary interfaces informati<strong>on</strong> to be able to execute TC API functi<strong>on</strong>s.<br />

Once d<strong>on</strong>e this, it proceeds to register <str<strong>on</strong>g>and</str<strong>on</strong>g> to request <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong> to <strong>the</strong> <strong>QoS</strong>Broker by means of <strong>the</strong><br />

COPS protocol, as we have already seen. At <strong>the</strong> end of this whole process, <strong>the</strong> Router has two open TC<br />

API sessi<strong>on</strong>s <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> same behaviour list that <strong>the</strong> <strong>QoS</strong>Broker.<br />

It is now when <strong>the</strong> Router should be able to interpret <strong>the</strong> received list <str<strong>on</strong>g>and</str<strong>on</strong>g> to generate <strong>the</strong> <strong>QoS</strong> tree that <strong>the</strong><br />

<strong>QoS</strong>Broker has transmitted to it for its access interface. Also <strong>the</strong> router initialises <strong>the</strong> basic TC API<br />

structures for <strong>the</strong> core interface. For that, <strong>the</strong> following steps are executed:<br />

1. ACCESS: The root queuing discipline associated directly to <strong>the</strong> device is created, this will be a<br />

DSMARK qdisc to be able to copy <strong>the</strong> TClass to <strong>the</strong> ‘skb->tc_index’ structure. Its h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler will<br />

be <strong>the</strong> 1:0.<br />

2. ACCESS: To <strong>the</strong> previous discipline a TCINDEX filter is associated. It will modify <strong>the</strong> TClass<br />

value stored in <strong>the</strong> ‘skb->tc_index’. The final result that will stay in this field will be <strong>the</strong> last<br />

three bits of <strong>the</strong> DSCP, necessary to choose <strong>the</strong> appropriated RIO queue in case that <strong>the</strong> packet<br />

will be headed towards an AF queue.<br />

3. ACCESS: A CBQ queuing discipline is created as a child of <strong>the</strong> DSMARK queuing discipline.<br />

Its h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler will be <strong>the</strong> 2:0.<br />

4. ACCESS: Next, <strong>the</strong> Router creates <strong>the</strong> CBQ class 2:62, where <strong>the</strong> whole traffic will be redirected<br />

during <strong>the</strong> time that a rec<strong>on</strong>figurati<strong>on</strong> lasts.<br />

5. CORE: The root queuing discipline associated directly to this device is created, this will be a<br />

CBQ qdisc to support filters with policing. Its h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler will be <strong>the</strong> 1:0.<br />

6. CORE: <strong>the</strong> Router creates <strong>the</strong>n <strong>the</strong> unique CBQ class 1:1, where <strong>the</strong> whole traffic will be<br />

redirected. The functi<strong>on</strong>ality in this interface will reside <strong>on</strong> <strong>the</strong> dynamic filters.<br />

7. CORE: next, <strong>the</strong> signaling filters are created: three U32 filters not applying policing to <strong>the</strong><br />

packets that <strong>the</strong> router generates thru <strong>the</strong>irs. Packets will be routed towards <strong>the</strong> previous CBQ<br />

class sharing <strong>the</strong> whole interface b<str<strong>on</strong>g>and</str<strong>on</strong>g>width. One of <strong>the</strong>m will classify packets with <strong>the</strong> linklocal<br />

AR source address <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> o<strong>the</strong>rs packets with both DNSv6 AR source addresses. Their<br />

number will be #1, #2 <str<strong>on</strong>g>and</str<strong>on</strong>g> #3.<br />

8. CORE: <strong>the</strong> router creates now <strong>the</strong> default filter that will classify all not-classified packets<br />

towards <strong>the</strong> CBQ class 1:1 but using a policer with 8bps of b<str<strong>on</strong>g>and</str<strong>on</strong>g>width <str<strong>on</strong>g>and</str<strong>on</strong>g> a burst size of 1 Byte.<br />

That’s is: traffics routed towards this filter will be blocked. The filter number will be #255.<br />

9. ACCESS: Subsequently <strong>the</strong> router looks for <strong>the</strong> ‘0’ aggregate in <strong>the</strong> received list <str<strong>on</strong>g>and</str<strong>on</strong>g> creates for<br />

it <strong>the</strong> CBQ class 2:63 with its list parameters, priority 8 <str<strong>on</strong>g>and</str<strong>on</strong>g> without RIO. It also adds a U32<br />

filter (#255) to <strong>the</strong> CBQ discipline to guide all not classified packets to this class.<br />

10. ACCESS: Next, <strong>the</strong> router looks for <strong>the</strong> ‘1’ aggregate in <strong>the</strong> list <str<strong>on</strong>g>and</str<strong>on</strong>g> creates for it <strong>the</strong> CBQ class<br />

2:1 with its parameters, priority 1 <str<strong>on</strong>g>and</str<strong>on</strong>g> without RIO. It also adds four U32 filters to <strong>the</strong> CBQ<br />

discipline. The first <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> sec<strong>on</strong>d <strong>on</strong>es (#2 & #3) will guide packets having <strong>the</strong> Router access<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> core interface DNSv6 IPv6 source addresses towards this class. Thus, <strong>the</strong> high level<br />

signaling packets that <strong>the</strong> Router generates (including <strong>the</strong> COPS <str<strong>on</strong>g>and</str<strong>on</strong>g> DIAMETER protocol<br />

messages) will have <strong>the</strong> best quality. The third U32 filter added (#4), will guide all packets<br />

having <strong>the</strong> Router access interface Link Local address towards this class. Thus, low-level<br />

CEC Deliverable Number D0202 74 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

signaling packets (as ICMPv6 messages) will have <strong>the</strong> best quality. Finally, <strong>the</strong> fourth filter (#5)<br />

is <strong>the</strong> st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard filter that will guide all packets having <strong>the</strong> DSCP specified in <strong>the</strong> aggregate<br />

number ‘1’ towards <strong>the</strong> class 2:1.<br />

11. ACCESS: To finish <strong>the</strong> initialisati<strong>on</strong>, <strong>the</strong> router creates so many AF/independent classes as<br />

aggregates bigger than ‘1’ are in <strong>the</strong> list. Their priority <str<strong>on</strong>g>and</str<strong>on</strong>g> class h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler will be its aggregate<br />

number. The router sums individual b<str<strong>on</strong>g>and</str<strong>on</strong>g>widths (in repeated aggregates) <str<strong>on</strong>g>and</str<strong>on</strong>g> creates a RIO<br />

discipline for each DSCP if RIO parameters are set. The router also adds so many U32 filter as<br />

aggregates/DSCP classes (<strong>the</strong> first three bits of <strong>the</strong> DSCP field) have been received. These filters<br />

will guide packets to classes based <strong>on</strong> <strong>the</strong> DSCP class.<br />

CEC Deliverable Number D0202 75 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

The trees that are obtained for <strong>the</strong> previously exposed list will have <strong>the</strong> following Figure 69:<br />

Root queuing<br />

discipline DSMARK<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le 1:0<br />

set tc index = true<br />

TCINDEX filter<br />

mask: 0x1C<br />

Shift: 2<br />

Fall_thru: yes<br />

CBQ queuing<br />

discipline<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le 2:0<br />

Avg. Pack. size: 1000<br />

U32 filter number 4<br />

Test Link Local<br />

Router U32 source filter address, number 3<br />

maps Test it towards U32 DNSv6 filter 2:1 Router number 2<br />

source Test a address, DNSv6 Router<br />

maps it source towards address, 2:1<br />

maps it towards 2:1<br />

U32 filter number 5<br />

If DSCP class: 101b maps to 2:1<br />

U32 filter number 6<br />

If DSCP class=100b maps to 2:2<br />

U32 filter number 7<br />

If DSCP class=011b maps to 2:3<br />

U32 filter number 8<br />

If DSCP class=010b maps to 2:4<br />

U32 filter number 9<br />

If DSCP class=001b maps to 2:5<br />

U32 filter number 255<br />

No c<strong>on</strong>diti<strong>on</strong>s<br />

(default)<br />

Maps to 2:63 class<br />

CBQ class<br />

ClassID = 2:1<br />

BW = 800 kbps<br />

borrow BW = No<br />

CBQ Class<br />

ClassID = 2:3<br />

BW = 900 kbps<br />

borrow BW = No<br />

CBQ class<br />

ClassID = 2:5<br />

BW = 180 kbps<br />

borrow BW = No<br />

CBQ class<br />

ClassID = 2:63<br />

BW = 0<br />

borrow BW=yes<br />

CBQ class<br />

ClassID = 2:2<br />

BW = 1800 kbps<br />

borrow BW = No<br />

CBQ class<br />

ClassID = 2:4<br />

BW = 270 kbps<br />

borrow BW = No<br />

CBQ class<br />

ClassID = 2:62<br />

BW=RECONFIG<br />

borrow BW = No<br />

qDisc<br />

GRED<br />

h<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 3:0<br />

numDP: 8<br />

qDisc<br />

GRED<br />

h<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 4:0<br />

numDP: 8<br />

qDisc<br />

GRED<br />

h<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 5:0<br />

numDP: 8<br />

qDisc<br />

GRED<br />

h<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 6:0<br />

numDP: 8<br />

VQ 2<br />

(010b)<br />

P:10%<br />

VQ 4<br />

(100b)<br />

P:25%<br />

VQ 6<br />

(110b)<br />

P:50%<br />

VQ 2<br />

(010b)<br />

P:10%<br />

VQ 4<br />

(100b)<br />

P:25%<br />

VQ 6<br />

(110b)<br />

P:50%<br />

VQ 2<br />

(010b)<br />

P:10%<br />

VQ 4<br />

(100b)<br />

P:25%<br />

VQ 6<br />

(110b)<br />

P:50%<br />

VQ 2<br />

(010b)<br />

P:10%<br />

VQ 4<br />

(100b)<br />

P:25%<br />

VQ 6<br />

(110b)<br />

P:50%<br />

Figure 69: <strong>QoS</strong> tree created <strong>on</strong> <strong>the</strong> router’s access interface<br />

CEC Deliverable Number D0202 76 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

In this simplified graph (<strong>on</strong>ly <strong>the</strong> most important c<strong>on</strong>figurati<strong>on</strong> parameters appear) is represented <strong>the</strong> <strong>QoS</strong><br />

tree that <strong>the</strong> Router creates when it receives <strong>the</strong> behaviour file at start up. In it we can see all <strong>the</strong> classes,<br />

disciplines <str<strong>on</strong>g>and</str<strong>on</strong>g> filters that we have explained in <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong> sequence for <strong>the</strong> access interface. We<br />

have also drawn a blue square ’ ’ in <strong>the</strong> place where <strong>the</strong> rec<strong>on</strong>figurati<strong>on</strong> filter will be placed.<br />

The TCAPI tree created <strong>on</strong> <strong>the</strong> core interface in <strong>the</strong> initialisati<strong>on</strong> is Figure 70:<br />

Root CBQ queuing<br />

discipline<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le 1:0<br />

Avg. Pack. size: 1000<br />

CBQ class<br />

ClassID = 1:1<br />

BW = 100 Mbps<br />

borrow BW=Yes<br />

U32 filter number 3<br />

Test Link Local Router<br />

source U32 filter address, number 2<br />

maps If it DNSv6 towards U32 Router filter 1:1 number source 1<br />

If a DNSv6 address, Router source<br />

maps to 1:1 (no address, policing)<br />

maps to 1:1 (no policing)<br />

U32 filter number 255<br />

No c<strong>on</strong>diti<strong>on</strong>s<br />

(default),<br />

maps to 1:1 (Blocking)<br />

Figure 70: <strong>QoS</strong> tree created <strong>on</strong> <strong>the</strong> router’s core interface<br />

We have added a red circle ‘O’ in <strong>the</strong> place where, during operati<strong>on</strong>, filters are added <str<strong>on</strong>g>and</str<strong>on</strong>g> removed<br />

classifying traffics towards <strong>the</strong> class 1:1 applying policers. By default all packets are sent to class 1:1 <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

blocked as <strong>the</strong> filter 255 indicates.<br />

While <strong>the</strong> Router is creating <strong>the</strong> trees with <strong>the</strong> TC API functi<strong>on</strong>s it records in a variable <strong>the</strong> result of all<br />

<strong>the</strong> comm<str<strong>on</strong>g>and</str<strong>on</strong>g>s. Once <strong>the</strong> trees creati<strong>on</strong> sequence is completed <str<strong>on</strong>g>and</str<strong>on</strong>g>, if some functi<strong>on</strong> has failed, this<br />

variable would cause <strong>the</strong> ‘<str<strong>on</strong>g>Report</str<strong>on</strong>g> C<strong>on</strong>figurati<strong>on</strong>’ message to be negative <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> <strong>QoS</strong>Manager will close<br />

<strong>the</strong> c<strong>on</strong>necti<strong>on</strong>. O<strong>the</strong>rwise <strong>the</strong> report will be affirmative <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> process will follow its course.<br />

8.3 <strong>QoS</strong> re-c<strong>on</strong>figurati<strong>on</strong><br />

As we have already commented, <strong>the</strong> <strong>QoS</strong>Broker can request <strong>the</strong> Router for a rec<strong>on</strong>figurati<strong>on</strong> in <strong>the</strong> <strong>QoS</strong><br />

queues of <strong>the</strong> access interface at any time during its executi<strong>on</strong>.<br />

The PDP, by means of queues use reports that <strong>the</strong> Router sends to it <str<strong>on</strong>g>and</str<strong>on</strong>g> by its network & traffic<br />

administrati<strong>on</strong> algorithms, can modify <strong>the</strong> behaviour data list <str<strong>on</strong>g>and</str<strong>on</strong>g> request <strong>the</strong> Router a c<strong>on</strong>figurati<strong>on</strong><br />

sequence repetiti<strong>on</strong>.<br />

In <strong>the</strong> COPS messages sequences we saw how, by means of <strong>the</strong> ‘flags’ field in <strong>the</strong> decisi<strong>on</strong> messages,<br />

<strong>QoS</strong>Broker can request <strong>the</strong> Router a rec<strong>on</strong>figurati<strong>on</strong>. We pass now to detail <strong>the</strong> operati<strong>on</strong> sequence that<br />

<strong>the</strong> PEP carries out in an event of this type.<br />

If <strong>the</strong> received flag value is ‘2’:<br />

1. The installed CBQ classes are counted (except <strong>the</strong> rec<strong>on</strong>figurati<strong>on</strong> class that is not counted).<br />

2. The list where <strong>the</strong> Router keeps <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong> that <strong>the</strong> <strong>QoS</strong>Broker sent to it previously is<br />

initialised. This is necessary since <strong>the</strong> number of CBQ disciplines that <strong>the</strong> <strong>QoS</strong>Broker wants to<br />

install can be smaller than those that are now installed.<br />

3. The first part of a c<strong>on</strong>figurati<strong>on</strong> request sequence is d<strong>on</strong>e. Therefore, a ‘C<strong>on</strong>figurati<strong>on</strong> Request’<br />

message is sent <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> <strong>QoS</strong>Broker resp<strong>on</strong>ds it with a ‘C<strong>on</strong>figurati<strong>on</strong> Decisi<strong>on</strong>’ message in<br />

which <strong>the</strong> new behaviour file goes, overwriting this way our empty behaviour list. Let us recall<br />

that <strong>the</strong> previous disciplines <str<strong>on</strong>g>and</str<strong>on</strong>g> filters still c<strong>on</strong>tinue working.<br />

4. A U32 filter is settled at <strong>the</strong> beginning of <strong>the</strong> filters line (#1). It provisi<strong>on</strong>ally will send all<br />

packets to <strong>the</strong> 2:62 CBQ class queue that has a b<str<strong>on</strong>g>and</str<strong>on</strong>g>width of ‘RECONFIG_BW’ kbps.<br />

5. All <strong>the</strong> installed DSCP class filters are deleted. The default (#255) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> signaling filters (#2,<br />

#3 <str<strong>on</strong>g>and</str<strong>on</strong>g> #4) are also removed. This is d<strong>on</strong>e because installed filters cannot be c<strong>on</strong>served towards a<br />

class that maybe w<strong>on</strong>’t be rec<strong>on</strong>structed or has ano<strong>the</strong>r number.<br />

6. It is now when all <strong>the</strong> CBQ classes are removed except <strong>the</strong> 2:62. It should be made this way<br />

because TC API doesn’t allow removing a class that is being used. At this time we have <strong>the</strong><br />

certainty that all packets are sent to <strong>the</strong> rec<strong>on</strong>figurati<strong>on</strong> class 2:62.<br />

7. It is now when <strong>the</strong> received classes in <strong>the</strong> c<strong>on</strong>figurati<strong>on</strong> message are created. They were stored in<br />

our behaviour list.<br />

8. Now <strong>the</strong> <strong>QoS</strong>Broker is informed about <strong>the</strong> <strong>QoS</strong> queues applying result <strong>on</strong> <strong>the</strong> Router’s access<br />

interface by sending to it <strong>the</strong> last c<strong>on</strong>figurati<strong>on</strong> message: <strong>the</strong> ‘C<strong>on</strong>figurati<strong>on</strong> <str<strong>on</strong>g>Report</str<strong>on</strong>g>’ message.<br />

9. The temporal filter (#1) that classifies towards <strong>the</strong> rec<strong>on</strong>figurati<strong>on</strong> class is removed.<br />

10. Finally it sets <strong>the</strong> flag to ‘0’ again, <strong>the</strong> statistics structures are initialised <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> new default<br />

DSCP is obtained.<br />

CEC Deliverable Number D0202 77 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

As an explanati<strong>on</strong>, we draw <strong>the</strong> <strong>QoS</strong> tree that stays during <strong>the</strong> short rec<strong>on</strong>figurati<strong>on</strong> time interval – Figure<br />

Root queuing<br />

discipline DSMARK<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le 1:0<br />

set tc index = true<br />

TCINDEX filter<br />

mask: 0x1C<br />

Shift: 2<br />

Fall_thru: yes<br />

CBQ queuing<br />

discipline<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le 2:0<br />

Avg. Pack. size: 1000<br />

U32 filter number 1<br />

No c<strong>on</strong>diti<strong>on</strong>s<br />

(default)<br />

Maps to 2:62 class<br />

71:<br />

CBQ class<br />

ClassID = 2:62<br />

BW=RECONFIG_BW<br />

borrow BW = No<br />

Figure 71: Temporal rec<strong>on</strong>figurati<strong>on</strong> access interface <strong>QoS</strong> tree<br />

In it we can see how all <strong>the</strong> CBQ classes except <strong>the</strong> rec<strong>on</strong>figurati<strong>on</strong> <strong>on</strong>e have been removed. Removing a<br />

class or discipline erases all its children; <strong>the</strong> TC API does not care if <strong>the</strong>y are disciplines, filters or o<strong>the</strong>r<br />

classes.<br />

In a same way, all filters have been removed. With this temporary tree we can create new filters <str<strong>on</strong>g>and</str<strong>on</strong>g> CBQ<br />

classes without traffic interacti<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> also, it allows to c<strong>on</strong>figure <strong>the</strong> temporary traffic properties thru <strong>the</strong><br />

2:62 class modifying its TC API parameters via ‘defines’.<br />

8.4 Outsourced policing towards core network<br />

As we explained in <strong>the</strong> COPS message sequence secti<strong>on</strong>, <strong>the</strong> Router requests <strong>the</strong> <strong>QoS</strong>Broker <strong>the</strong><br />

treatment that it should give to a traffic when: (a) it detects an exiting traffic thru its core interface that it<br />

is not installed yet or (b) when <strong>the</strong> time to live of a previously installed traffic expires.<br />

According to <strong>the</strong> case <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> answer that <strong>the</strong> <strong>QoS</strong>Broker returns, <strong>the</strong> router knows if it should install a<br />

filter/policer, remove it or doesn’t do anything. We pass to see <strong>the</strong> different cases:<br />

Active traffic not installed at this time<br />

The Router checks periodically <strong>the</strong> active traffic’s captures from <strong>the</strong> access interface to <strong>the</strong> core <strong>on</strong>e <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

if <strong>the</strong>y d<strong>on</strong>'t have <strong>the</strong> default DSCP. This informati<strong>on</strong> is provided to it by its associated capturing<br />

program. Subsequently, it compares each active traffic with <strong>the</strong> traffics already installed in its list. If it<br />

was already installed, <strong>the</strong> Router doesn't do anything but if not, <strong>the</strong> Router asks <strong>the</strong> <strong>QoS</strong>Broker <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

according to its answer it works in <strong>the</strong> following way:<br />

- Negative answer: nothing is d<strong>on</strong>e with <strong>the</strong> traffic (it is blocked). The traffic’s parameters are<br />

added to <strong>the</strong> ‘forbidden’ table. This table prevents to ask for a rejected traffic every time <strong>the</strong><br />

router checks <strong>the</strong> capturer table. In case it c<strong>on</strong>tinues being active, <strong>the</strong> Router will request for a<br />

policer when <strong>the</strong> time to live of that traffic in <strong>the</strong> forbidden table is over. The traffic will<br />

c<strong>on</strong>tinue being blocked until <strong>the</strong>n.<br />

- Affirmative answer: <strong>the</strong>n it records in its ‘installed c<strong>on</strong>necti<strong>on</strong>s’ list <strong>the</strong> traffic informati<strong>on</strong><br />

(source, destinati<strong>on</strong> address <str<strong>on</strong>g>and</str<strong>on</strong>g> DSCP) <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> time in which it has been authorized. Then it<br />

installs a filter towards <strong>the</strong> class 1:1 with a token-bucket policer. The parameters that <strong>the</strong> policer<br />

needs are obtained from <strong>the</strong> ‘Affirmative Resource allocati<strong>on</strong>’ COPS message.<br />

Expired installed traffic<br />

Periodically <strong>the</strong> router also verifies if some of <strong>the</strong> installed c<strong>on</strong>necti<strong>on</strong>s have its ‘lifetime’ expired <str<strong>on</strong>g>and</str<strong>on</strong>g> if<br />

<strong>the</strong> MT is sending traffic. If <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> is installed but <strong>the</strong> MT is not transmitting packets, <strong>the</strong> router<br />

CEC Deliverable Number D0202 78 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

will wait 60 sec<strong>on</strong>ds until remove <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> its filter. This way, we avoid remove a temporally<br />

sleeping traffic. If <strong>the</strong> traffic wakes up before 60 sec<strong>on</strong>ds of inactivity, <strong>the</strong> router will ask for it. The time<br />

guard of 60 sec<strong>on</strong>ds is c<strong>on</strong>figurable in <strong>the</strong> <strong>QoS</strong>Manager.<br />

If <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> has expired <str<strong>on</strong>g>and</str<strong>on</strong>g> still has traffic, a petiti<strong>on</strong> to <strong>the</strong> <strong>QoS</strong>Broker is made <str<strong>on</strong>g>and</str<strong>on</strong>g>, according to<br />

its answer, <strong>the</strong> following operati<strong>on</strong>s are carried out:<br />

- Negative answer: it removes <strong>the</strong> TC API filter/policer that directs <strong>the</strong> traffic to <strong>the</strong> 1:1 class.<br />

Also it removes <strong>the</strong> c<strong>on</strong>necti<strong>on</strong> in <strong>the</strong> ‘installed c<strong>on</strong>necti<strong>on</strong>s’ list.<br />

- Affirmative answer: In this case <strong>the</strong> <strong>on</strong>ly thing that it is necessary to do is to actualize <strong>the</strong><br />

c<strong>on</strong>necti<strong>on</strong> lifetime. The filter/policer c<strong>on</strong>tinues staying.<br />

As a security mechanism <str<strong>on</strong>g>and</str<strong>on</strong>g>, in Router failures, <strong>the</strong> program has a functi<strong>on</strong> that removes c<strong>on</strong>necti<strong>on</strong>s<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> filters that remain installed too much time.<br />

To clarify how a traffic is added <str<strong>on</strong>g>and</str<strong>on</strong>g> removed from <strong>the</strong> TC API core tree we will expose later a figure.<br />

But before, we want to highlight that <strong>the</strong> filters are ordered according to <strong>the</strong>ir number in a filter list. On a<br />

packet arrival <strong>the</strong> TC begins to check <strong>the</strong> filters in order <str<strong>on</strong>g>and</str<strong>on</strong>g>, as so<strong>on</strong> as <strong>on</strong>e verifies its c<strong>on</strong>diti<strong>on</strong>s, it<br />

redirects <strong>the</strong> packet to its programmed policer <str<strong>on</strong>g>and</str<strong>on</strong>g> class.<br />

The core filter numbers ‘1’, ‘2’ <str<strong>on</strong>g>and</str<strong>on</strong>g> ‘3’are reserved for signaling. Starting from those numbers ordinary<br />

filters are created according to <strong>the</strong> following number: c<strong>on</strong>necti<strong>on</strong> h<str<strong>on</strong>g>and</str<strong>on</strong>g>le + 3.<br />

In <strong>the</strong> following graph of Fig. 72 we present a tree with two policer filters installed:<br />

Root CBQ queuing<br />

discipline<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le 1:0<br />

Avg. Pack. size: 1000<br />

CBQ class<br />

ClassID = 1:1<br />

BW = 100 Mbps<br />

borrow BW=Yes<br />

U32 filter number 3<br />

Test Link Local Router<br />

source U32 filter address, number 2<br />

maps If it DNSv6 towards U32 Router filter 1:1 number source 1<br />

If a DNSv6 address, Router source<br />

maps to 1:1 address, (no policing)<br />

maps to 1:1 (no policing)<br />

U32 filter number 4<br />

Match Adresses1 <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

DSCP1 to class 1:1. Policer<br />

parameters: BW=100kbps,<br />

Burst= 1540Bytes.<br />

U32 filter number 5<br />

Match Adresses2 <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

DSCP2 to class 1:1. Policer<br />

parameters: BW=20kbps,<br />

Burst= 1514Bytes.<br />

U32 filter number 255<br />

No c<strong>on</strong>diti<strong>on</strong>s<br />

(default),<br />

maps to 1:1 (Blocking)<br />

Figure 72: Example of an active policing tree <strong>on</strong> <strong>the</strong> core interface<br />

When a c<strong>on</strong>necti<strong>on</strong> disappears or is deauthorized <strong>the</strong> Router removes its corresp<strong>on</strong>ding filter. The filter’s<br />

line is rec<strong>on</strong>structed automatically by joining <strong>the</strong> previous <str<strong>on</strong>g>and</str<strong>on</strong>g> later filters.<br />

CEC Deliverable Number D0202 79 / 97


9. APPENDIX B: DEBUG MODE ACCESS ROUTER OUTPUT LINES<br />

9.1 Access Router Initialisati<strong>on</strong><br />

pulga:~/mobydick/<strong>QoS</strong> Manager/programs/> sudo ./router garrapata.ipv6 eth1 100 eth2 100 -d<br />

Password:<br />

************************************************************************************<br />

**** IPv6 <strong>QoS</strong>/Policing ACCESS ROUTER [MobyDick] (COPS CLIENT, 2 interfaces) ****<br />

************************************************************************************<br />

- Debug mode enabled.<br />

Core Interface speed: 104857600 bps<br />

Access Interface speed: 104857600 bps<br />

Debug: logger created<br />

Reading file /proc/net/if_inet6...<br />

-------------------------------------------------------------<br />

Address: 00000000000000000000000000000001, interface: lo<br />

Address: fe8000000000000002c026fffea0b2a0, interface: eth1<br />

Address: fe8000000000000002c026fffe10217c, interface: eth0<br />

Address: fe8000000000000002c026fffea0ad36, interface: eth2<br />

Address: 200107200410100402c026fffea0ad36, interface: eth2<br />

Address: 200107200410100302c026fffea0b2a0, interface: eth1<br />

-------------------------------------------------------------<br />

Opening c<strong>on</strong>necti<strong>on</strong> with: garrapata.ipv6.it.uc3m.es (2001:720:410:1003:204:75ff:fe7b:943e)<br />

---------------------------------------------<br />

Sending CLIENT OPEN message to server<br />

Message from <strong>QoS</strong> Broker<br />

CLIENT ACCEPT message received<br />

Received a KEEP-ALIVE object<br />

Received an AcctTimer object<br />

KATimer value: 120, AcctTimer value: 20<br />

Sending a CONFIGURATION REQUEST message to server<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=0<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

CONFIGURATION DECISION RECEIVED O.K.<br />

CEC Deliverable Number 80 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

--------------------------------------------<br />

BEHAVIOUR TABLE received:<br />

DSCP | Agre. | B<str<strong>on</strong>g>and</str<strong>on</strong>g>width | BW Borrow | RIO min queue | RIO max queue | RIO limit queue| RIO drop|<br />

| Number| (kbps) | flag | length (kB) | length (kB) | length (kB) | prob.(%)|<br />

--------------------------------------------------------------------------------------------------<br />

0x00 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |<br />

0x2e | 1 | 800 | 0 | 0 | 0 | 0 | 0 |<br />

0x22 | 2 | 700 | 0 | 500 | 700 | 1000 | 10 |<br />

0x24 | 2 | 600 | 0 | 400 | 600 | 750 | 25 |<br />

0x26 | 2 | 500 | 0 | 300 | 500 | 600 | 50 |<br />

0x1a | 3 | 400 | 0 | 250 | 500 | 750 | 10 |<br />

0x1c | 3 | 300 | 0 | 200 | 400 | 600 | 25 |<br />

0x1e | 3 | 200 | 0 | 150 | 300 | 400 | 50 |<br />

0x12 | 4 | 100 | 0 | 150 | 250 | 300 | 10 |<br />

0x14 | 4 | 90 | 0 | 100 | 200 | 250 | 25 |<br />

0x16 | 4 | 80 | 0 | 50 | 100 | 150 | 50 |<br />

0x0a | 5 | 70 | 0 | 10 | 40 | 60 | 10 |<br />

0x0c | 5 | 60 | 0 | 5 | 15 | 25 | 25 |<br />

0x0e | 5 | 50 | 0 | 3 | 10 | 15 | 50 |<br />

--------------------------------------------------------------------------------------------------<br />

Note: For <strong>the</strong> behaviour table see secti<strong>on</strong> 8.1<br />

***** STARTING IBM TC API *****<br />

Creating root qdisc associated with interfaces: eth1 & eth2...<br />

ACCESS: Starting queue(s) discipline(s) <strong>on</strong> <strong>the</strong> eth2 interface...<br />

ACCESS: Creating DSMARK qdisc as root with h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 1:0, rc=0<br />

ACCESS: Creating TCINDEX filter for root to get <strong>the</strong> AF RIO queue code (000XXX from DSCP), rc=0<br />

ACCESS: Creating child CBQ qdisc with h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 2:0, rc=0<br />

ACCESS: Creating RECONFIG cbq class 2:62, with 512000 bps, (Bounded, isolated), rc=0<br />

CORE: Starting queue(s) discipline(s) <strong>on</strong> <strong>the</strong> eth1 interface...<br />

CORE: Creating root CBQ qdisc with h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 1:0, rc=0<br />

CORE: Creating cbq class 1:1, with 104857600 bps, (Not-Bounded, isolated), rc=0<br />

CORE: Created u32 Signaling filter to map AR addr (fe80:0000:0000:0000:02c0:26ff:fea0:b2a0) into class/PHB 2:1, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:1, rc=0<br />

CORE: Created u32 Signaling filter to map AR addr (2001:0720:0410:1003:02c0:26ff:fea0:b2a0) into class/PHB 2:1, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:2, rc=0<br />

CORE: Creating a u32 default filter that drops everything not classified, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:255, rc=0<br />

ACCESS: Adding default (BEST-EFFORT) class (2:63) <str<strong>on</strong>g>and</str<strong>on</strong>g> its filter. Will have 0 kbps...<br />

ACCESS: Creating cbq class 2:63, with 8 bps, Bounded in BW?: 0, rc=0<br />

ACCESS: Creating a u32 default filter that maps not classified traffic to class 2:63, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:255, rc=0<br />

ACCESS: Adding EXPEDITED FORWARDING class (2:1). Will have 800 kbps...<br />

ACCESS: Creating cbq class 2:1, with 819200 bps, Bounded in BW?: 1, rc=0<br />

CEC Deliverable Number D0202 81 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

ACCESS: Created u32 Signaling filter to map AR addr (fe80:0000:0000:0000:02c0:26ff:fea0:ad36) into class/PHB 2:1, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:2, rc=0<br />

ACCESS: Created u32 Signaling filter to map AR addr (2001:0720:0410:1004:02c0:26ff:fea0:ad36) into class/PHB 2:1, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:3, rc=0<br />

ACCESS: Created u32 filter to map <strong>the</strong> DSCP class 5 into class/PHB 2:1, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:4, result: rc=0<br />

4 ASSURED FORWARDING/INDEPENDENT queue(s) to create:<br />

Adding AF/Independent Class/PHB 2:2, will have a BW: 1800 kbps...<br />

ACCESS: Creating cbq class 2:2, with 1843200 bps, Bounded in BW?: 1, rc=0<br />

ACCESS: Creating RIO (GRED) qdisc as child of CBQ class 2:2, h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 3:0, rc=0<br />

ACCESS: Created u32 filter to map <strong>the</strong> DSCP class 4 into class/PHB 2:2, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:5, result: rc=0<br />

ACCESS: Creating VQ 2, in CBQ class: 2:2 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 3:0, min: 500 kB, max: 700 kB, limit: 1000, prob: 10 %, rc=0<br />

ACCESS: Creating VQ 4, in CBQ class: 2:2 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 3:0, min: 400 kB, max: 600 kB, limit: 750, prob: 25 %, rc=0<br />

ACCESS: Creating VQ 6, in CBQ class: 2:2 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 3:0, min: 300 kB, max: 500 kB, limit: 600, prob: 50 %, rc=0<br />

Adding AF/Independent Class/PHB 2:3, will have a BW: 900 kbps...<br />

ACCESS: Creating cbq class 2:3, with 921600 bps, Bounded in BW?: 1, rc=0<br />

ACCESS: Creating RIO (GRED) qdisc as child of CBQ class 2:3, h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 4:0, rc=0<br />

ACCESS: Created u32 filter to map <strong>the</strong> DSCP class 3 into class/PHB 2:3, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:6, result: rc=0<br />

ACCESS: Creating VQ 2, in CBQ class: 2:3 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 4:0, min: 250 kB, max: 500 kB, limit: 750, prob: 10 %, rc=0<br />

ACCESS: Creating VQ 4, in CBQ class: 2:3 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 4:0, min: 200 kB, max: 400 kB, limit: 600, prob: 25 %, rc=0<br />

ACCESS: Creating VQ 6, in CBQ class: 2:3 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 4:0, min: 150 kB, max: 300 kB, limit: 400, prob: 50 %, rc=0<br />

Adding AF/Independent Class/PHB 2:4, will have a BW: 270 kbps...<br />

ACCESS: Creating cbq class 2:4, with 276480 bps, Bounded in BW?: 1, rc=0<br />

ACCESS: Creating RIO (GRED) qdisc as child of CBQ class 2:4, h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 5:0, rc=0<br />

ACCESS: Created u32 filter to map <strong>the</strong> DSCP class 2 into class/PHB 2:4, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:7, result: rc=0<br />

ACCESS: Creating VQ 2, in CBQ class: 2:4 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 5:0, min: 150 kB, max: 250 kB, limit: 300, prob: 10 %, rc=0<br />

ACCESS: Creating VQ 4, in CBQ class: 2:4 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 5:0, min: 100 kB, max: 200 kB, limit: 250, prob: 25 %, rc=0<br />

ACCESS: Creating VQ 6, in CBQ class: 2:4 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 5:0, min: 50 kB, max: 100 kB, limit: 150, prob: 50 %, rc=0<br />

Adding AF/Independent Class/PHB 2:5, will have a BW: 180 kbps...<br />

ACCESS: Creating cbq class 2:5, with 184320 bps, Bounded in BW?: 1, rc=0<br />

ACCESS: Creating RIO (GRED) qdisc as child of CBQ class 2:5, h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 6:0, rc=0<br />

ACCESS: Created u32 filter to map <strong>the</strong> DSCP class 1 into class/PHB 2:5, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:8, result: rc=0<br />

ACCESS: Creating VQ 2, in CBQ class: 2:5 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 6:0, min: 10 kB, max: 40 kB, limit: 60, prob: 10 %, rc=0<br />

ACCESS: Creating VQ 4, in CBQ class: 2:5 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 6:0, min: 5 kB, max: 15 kB, limit: 25, prob: 25 %, rc=0<br />

ACCESS: Creating VQ 6, in CBQ class: 2:5 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 6:0, min: 3 kB, max: 10 kB, limit: 15, prob: 50 %, rc=0<br />

------------------------------------------------------------------------------------<br />

** TCAPI QUEUES READY!!... Sending to BB a CONFIGURATION REPORT COMPLETED message **<br />

------------------------------------------------------------------------------------<br />

ACCESS: Obtaining Stats from all <strong>the</strong> qDisc... (Previous netlink_dump errors are normal), rc = 0<br />

The shared memory segment for capture table is OK. Waiting for captures...<br />

9.2 Access Router Resource allocati<strong>on</strong><br />

*---------------------------------------------<br />

Sending petiti<strong>on</strong> to BB for install a filter.<br />

CEC Deliverable Number D0202 82 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 1 (install traffic filter)<br />

Adding filter<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 1<br />

Tocken Bucket policer rate: 90 kbps<br />

Tocken Bucket policer burst: 1514 Bytes<br />

CORE: Created u32 filter to map IPv6 source <str<strong>on</strong>g>and</str<strong>on</strong>g> destinati<strong>on</strong> addresses <str<strong>on</strong>g>and</str<strong>on</strong>g> DSCP into class/PHB 1:1, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:3,<br />

result: rc=0<br />

With Tocken-Bucket Policer: 92160 bps, burst: 1514 bytes<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

Debug: SvcAuth record inserted<br />

9.3 Access Router queues state report<br />

**** ACCESS: Obtaining Stats from all <strong>the</strong> qDisc... (Previous netlink_dump errors are normal), rc = 0<br />

T_dif: 20 *** Number: 0, ACCOUNT=> Average BW: 82 (kbps), Packets ps: 10, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 1, ACCOUNT=> Average BW: 82 (kbps), Packets ps: 10, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 2, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 3, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

**---------------------------------------------<br />

CEC Deliverable Number D0202 83 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

9.4 Access Router mobility signaling messages<br />

9.4.1 Old Access Router<br />

Read from FHO-module 52 bytes<br />

Received START_QOS_FHO message!!!<br />

The old CoA is:<br />

2001:720:410:1006:204:e2ff:fe2a:460c<br />

The new CoA is:<br />

2001:720:410:1007:204:e2ff:fe2a:460c<br />

The new AR is:<br />

2001:720:410:1007:204:e2ff:fe08:c8c<br />

Sending FHO report to <strong>QoS</strong> Broker!!!<br />

9.4.2 New Access Router<br />

Read from FHO-module 52 bytes<br />

Received START_QOSB_LISTEN!!!<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=0<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

UNSOLICITED FHO DECISION RECEIVED O.K.<br />

Installing FHO c<strong>on</strong>necti<strong>on</strong> number 1 ...<br />

CoA IPv6 address= 2001:720:410:1007:204:e2ff:fe2a:460c<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x00<br />

Adding filter<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 1<br />

Tocken Bucket policer rate: 50 kbps<br />

Tocken Bucket policer burst: 1514 Bytes<br />

CEC Deliverable Number D0202 84 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

CORE: Created u32 filter to map IPv6 source <str<strong>on</strong>g>and</str<strong>on</strong>g> destinati<strong>on</strong> addresses <str<strong>on</strong>g>and</str<strong>on</strong>g> DSCP into class/PHB 1:1, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:4,<br />

result: rc=0<br />

With Tocken-Bucket Policer: 51200 bps, burst: 1514 bytes<br />

Sending a 1 code in a R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

---------------------------------------------<br />

sending QOS_FHO_ACK to <strong>the</strong> FHO-module (value QOS_AVAILABLE)<br />

---------------------------------------------<br />

9.5 Access Router timeout c<strong>on</strong>necti<strong>on</strong> deleti<strong>on</strong><br />

Filter 1 NO LONGER VALID. Deleting Filter!.<br />

Sending a Delete Request State...<br />

Deleted <strong>the</strong> u32 filter with h<str<strong>on</strong>g>and</str<strong>on</strong>g>le 0:4, in discipline: 1:0, result: rc=0<br />

9.6 Access Router C<strong>on</strong>necti<strong>on</strong> check dialogue<br />

---------------------------------------------<br />

Sending KEEP ALIVE message.<br />

KEEP ALIVE message received<br />

9.7 Access Router closing COPS c<strong>on</strong>necti<strong>on</strong><br />

CAPTURED 'Ctrl-C' signal. CLOSING CLIENT. Sending CLIENT-CLOSE message to <strong>the</strong> BB.<br />

Closing c<strong>on</strong>neti<strong>on</strong> with server...<br />

Cleaning all <strong>the</strong> root QDISC <strong>on</strong> <strong>the</strong> interface eth1, rc=0<br />

Cleaning all <strong>the</strong> root QDISC <strong>on</strong> <strong>the</strong> interface eth2, rc=0<br />

Debug: logger destroyed<br />

Closing client...<br />

9.8 Denying access to a n<strong>on</strong>-authorized traffic test<br />

CEC Deliverable Number D0202 85 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

pulga:~/mobydick/<strong>QoS</strong> Manager/programs/> sudo ./router garrapata.ipv6 eth1 -d<br />

************************************************************************************<br />

**** IPv6 <strong>QoS</strong>/Policing ACCESS ROUTER [MobyDick] (COPS CLIENT, 2 interfaces) ****<br />

************************************************************************************<br />

- Debug mode enabled.<br />

Core Interface speed: 104857600 bps<br />

Access Interface speed: 104857600 bps<br />

Debug: logger created<br />

Reading file /proc/net/if_inet6...<br />

-------------------------------------------------------------<br />

Address: 00000000000000000000000000000001, interface: lo<br />

Address: fe8000000000000002c026fffea0b2a0, interface: eth1<br />

Address: fe8000000000000002c026fffe10217c, interface: eth0<br />

Address: fe8000000000000002c026fffea0ad36, interface: eth2<br />

Address: 200107200410100402c026fffea0ad36, interface: eth2<br />

Address: 200107200410100302c026fffea0b2a0, interface: eth1<br />

-------------------------------------------------------------<br />

Opening c<strong>on</strong>necti<strong>on</strong> with: garrapata.ipv6.it.uc3m.es (2001:720:410:1003:204:75ff:fe7b:943e)<br />

---------------------------------------------<br />

Sending CLIENT OPEN message to server<br />

Message from <strong>QoS</strong> Broker<br />

CLIENT ACCEPT message received<br />

Received a KEEP-ALIVE object<br />

Received an AcctTimer object<br />

KATimer value: 120, AcctTimer value: 20<br />

Sending a CONFIGURATION REQUEST message to server<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=0<br />

Received a CONTEXT object<br />

CEC Deliverable Number D0202 86 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Received a DECISION FLAGS object<br />

CONFIGURATION DECISION RECEIVED O.K.<br />

--------------------------------------------<br />

BEHAVIOUR TABLE received:<br />

DSCP | Agre. | B<str<strong>on</strong>g>and</str<strong>on</strong>g>width | BW Borrow | RIO min queue | RIO max queue | RIO limit queue| RIO drop|<br />

| Number| (kbps) | flag | length (kB) | length (kB) | length (kB) | prob.(%)|<br />

--------------------------------------------------------------------------------------------------<br />

0x00 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |<br />

0x2e | 1 | 800 | 0 | 0 | 0 | 0 | 0 |<br />

0x22 | 2 | 700 | 0 | 500 | 700 | 1000 | 10 |<br />

0x24 | 2 | 600 | 0 | 400 | 600 | 750 | 25 |<br />

0x26 | 2 | 500 | 0 | 300 | 500 | 600 | 50 |<br />

0x1a | 3 | 400 | 0 | 250 | 500 | 750 | 10 |<br />

0x1c | 3 | 300 | 0 | 200 | 400 | 600 | 25 |<br />

0x1e | 3 | 200 | 0 | 150 | 300 | 400 | 50 |<br />

0x12 | 4 | 100 | 0 | 150 | 250 | 300 | 10 |<br />

0x14 | 4 | 90 | 0 | 100 | 200 | 250 | 25 |<br />

0x16 | 4 | 80 | 0 | 50 | 100 | 150 | 50 |<br />

0x0a | 5 | 70 | 0 | 10 | 40 | 60 | 10 |<br />

0x0c | 5 | 60 | 0 | 5 | 15 | 25 | 25 |<br />

0x0e | 5 | 50 | 0 | 3 | 10 | 15 | 50 |<br />

--------------------------------------------------------------------------------------------------<br />

Note: For <strong>the</strong> behaviour table see secti<strong>on</strong> 8.1<br />

***** STARTING IBM TC API *****<br />

Creating root qdisc associated with interfaces: eth1 & eth2...<br />

ACCESS: Starting queue(s) discipline(s) <strong>on</strong> <strong>the</strong> eth2 interface...<br />

ACCESS: Creating DSMARK qdisc as root with h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 1:0, rc=0<br />

ACCESS: Creating TCINDEX filter for root to get <strong>the</strong> AF RIO queue code (000XXX from DSCP), rc=0<br />

ACCESS: Creating child CBQ qdisc with h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 2:0, rc=0<br />

ACCESS: Creating RECONFIG cbq class 2:62, with 512000 bps, (Bounded, isolated), rc=0<br />

CORE: Starting queue(s) discipline(s) <strong>on</strong> <strong>the</strong> eth1 interface...<br />

CORE: Creating root CBQ qdisc with h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 1:0, rc=0<br />

CEC Deliverable Number D0202 87 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

CORE: Creating cbq class 1:1, with 104857600 bps, (Not-Bounded, isolated), rc=0<br />

CORE: Created u32 Signaling filter to map AR addr (fe80:0000:0000:0000:02c0:26ff:fea0:b2a0) into class/PHB 2:1, filter<br />

h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:1, rc=0<br />

CORE: Created u32 Signaling filter to map AR addr (2001:0720:0410:1003:02c0:26ff:fea0:b2a0) into class/PHB 2:1, filter<br />

h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:2, rc=0<br />

CORE: Creating a u32 default filter that drops everything not classified, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:255, rc=0<br />

ACCESS: Adding default (BEST-EFFORT) class (2:63) <str<strong>on</strong>g>and</str<strong>on</strong>g> its filter. Will have 0 kbps...<br />

ACCESS: Creating cbq class 2:63, with 8 bps, Bounded in BW?: 0, rc=0<br />

ACCESS: Creating a u32 default filter that maps not classified traffic to class 2:63, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:255, rc=0<br />

ACCESS: Adding EXPEDITED FORWARDING class (2:1). Will have 800 kbps...<br />

ACCESS: Creating cbq class 2:1, with 819200 bps, Bounded in BW?: 1, rc=0<br />

ACCESS: Created u32 Signaling filter to map AR addr (fe80:0000:0000:0000:02c0:26ff:fea0:ad36) into class/PHB 2:1,<br />

filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:2, rc=0<br />

ACCESS: Created u32 Signaling filter to map AR addr (2001:0720:0410:1004:02c0:26ff:fea0:ad36) into class/PHB 2:1,<br />

filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:3, rc=0<br />

ACCESS: Created u32 filter to map <strong>the</strong> DSCP class 5 into class/PHB 2:1, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:4, result: rc=0<br />

4 ASSURED FORWARDING/INDEPENDENT queue(s) to create:<br />

Adding AF/Independent Class/PHB 2:2, will have a BW: 1800 kbps...<br />

ACCESS: Creating cbq class 2:2, with 1843200 bps, Bounded in BW?: 1, rc=0<br />

ACCESS: Creating RIO (GRED) qdisc as child of CBQ class 2:2, h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 3:0, rc=0<br />

ACCESS: Created u32 filter to map <strong>the</strong> DSCP class 4 into class/PHB 2:2, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:5, result: rc=0<br />

ACCESS: Creating VQ 2, in CBQ class: 2:2 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 3:0, min: 500 kB, max: 700 kB, limit: 1000, prob: 10 %,<br />

rc=0<br />

ACCESS: Creating VQ 4, in CBQ class: 2:2 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 3:0, min: 400 kB, max: 600 kB, limit: 750, prob: 25 %, rc=0<br />

ACCESS: Creating VQ 6, in CBQ class: 2:2 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 3:0, min: 300 kB, max: 500 kB, limit: 600, prob: 50 %, rc=0<br />

Adding AF/Independent Class/PHB 2:3, will have a BW: 900 kbps...<br />

ACCESS: Creating cbq class 2:3, with 921600 bps, Bounded in BW?: 1, rc=0<br />

ACCESS: Creating RIO (GRED) qdisc as child of CBQ class 2:3, h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 4:0, rc=0<br />

ACCESS: Created u32 filter to map <strong>the</strong> DSCP class 3 into class/PHB 2:3, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:6, result: rc=0<br />

ACCESS: Creating VQ 2, in CBQ class: 2:3 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 4:0, min: 250 kB, max: 500 kB, limit: 750, prob: 10 %, rc=0<br />

ACCESS: Creating VQ 4, in CBQ class: 2:3 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 4:0, min: 200 kB, max: 400 kB, limit: 600, prob: 25 %, rc=0<br />

ACCESS: Creating VQ 6, in CBQ class: 2:3 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 4:0, min: 150 kB, max: 300 kB, limit: 400, prob: 50 %, rc=0<br />

Adding AF/Independent Class/PHB 2:4, will have a BW: 270 kbps...<br />

ACCESS: Creating cbq class 2:4, with 276480 bps, Bounded in BW?: 1, rc=0<br />

CEC Deliverable Number D0202 88 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

ACCESS: Creating RIO (GRED) qdisc as child of CBQ class 2:4, h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 5:0, rc=0<br />

ACCESS: Created u32 filter to map <strong>the</strong> DSCP class 2 into class/PHB 2:4, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:7, result: rc=0<br />

ACCESS: Creating VQ 2, in CBQ class: 2:4 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 5:0, min: 150 kB, max: 250 kB, limit: 300, prob: 10 %, rc=0<br />

ACCESS: Creating VQ 4, in CBQ class: 2:4 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 5:0, min: 100 kB, max: 200 kB, limit: 250, prob: 25 %, rc=0<br />

ACCESS: Creating VQ 6, in CBQ class: 2:4 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 5:0, min: 50 kB, max: 100 kB, limit: 150, prob: 50 %, rc=0<br />

Adding AF/Independent Class/PHB 2:5, will have a BW: 180 kbps...<br />

ACCESS: Creating cbq class 2:5, with 184320 bps, Bounded in BW?: 1, rc=0<br />

ACCESS: Creating RIO (GRED) qdisc as child of CBQ class 2:5, h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 6:0, rc=0<br />

ACCESS: Created u32 filter to map <strong>the</strong> DSCP class 1 into class/PHB 2:5, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:8, result: rc=0<br />

ACCESS: Creating VQ 2, in CBQ class: 2:5 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 6:0, min: 10 kB, max: 40 kB, limit: 60, prob: 10 %, rc=0<br />

ACCESS: Creating VQ 4, in CBQ class: 2:5 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 6:0, min: 5 kB, max: 15 kB, limit: 25, prob: 25 %, rc=0<br />

ACCESS: Creating VQ 6, in CBQ class: 2:5 <str<strong>on</strong>g>and</str<strong>on</strong>g> GRED qdisc 6:0, min: 3 kB, max: 10 kB, limit: 15, prob: 50 %, rc=0<br />

------------------------------------------------------------------------------------<br />

** TCAPI QUEUES READY!!... Sending to BB a CONFIGURATION REPORT COMPLETED message **<br />

------------------------------------------------------------------------------------<br />

ACCESS: Obtaining Stats from all <strong>the</strong> qDisc... (Previous netlink_dump errors are normal), rc = 0<br />

Previous netlink_talk errors are normal, going <strong>on</strong>...<br />

The shared memory segment for capture table is OK. Waiting for captures...<br />

**---------------------------------------------<br />

Sending petiti<strong>on</strong> to BB for install a filter.<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 2 (NO install filter)<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

Debug: SvcAuth record inserted<br />

---------------------------------------------<br />

*---------------------------------------------<br />

Sending petiti<strong>on</strong> to BB for install a filter.<br />

CEC Deliverable Number D0202 89 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 2 (NO install filter)<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

Debug: SvcAuth record inserted<br />

---------------------------------------------<br />

* ACCESS: Obtaining Stats from all <strong>the</strong> qDisc... (Previous netlink_dump errors are normal), rc = 0<br />

Previous netlink_talk errors are normal, going <strong>on</strong>...<br />

T_dif: 20 *** Number: 0, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 1, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 2, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 3, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

---------------------------------------------<br />

Sending petiti<strong>on</strong> to BB for install a filter.<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 2 (NO install filter)<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

Debug: SvcAuth record inserted<br />

CEC Deliverable Number D0202 90 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

---------------------------------------------<br />

*---------------------------------------------<br />

Sending petiti<strong>on</strong> to BB for install a filter.<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 2 (NO install filter)<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

Debug: SvcAuth record inserted<br />

---------------------------------------------<br />

*---------------------------------------------<br />

Sending petiti<strong>on</strong> to BB for install a filter.<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 2 (NO install filter)<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

Debug: SvcAuth record inserted<br />

---------------------------------------------<br />

*---------------------------------------------<br />

Sending petiti<strong>on</strong> to BB for install a filter.<br />

CEC Deliverable Number D0202 91 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 2 (NO install filter)<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

Debug: SvcAuth record inserted<br />

---------------------------------------------<br />

* ACCESS: Obtaining Stats from all <strong>the</strong> qDisc... (Previous netlink_dump errors are normal), rc = 0<br />

Previous netlink_talk errors are normal, going <strong>on</strong>...<br />

T_dif: 20 *** Number: 0, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 1, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 2, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 3, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

---------------------------------------------<br />

Sending petiti<strong>on</strong> to BB for install a filter.<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 2 (NO install filter)<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

Debug: SvcAuth record inserted<br />

CEC Deliverable Number D0202 92 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

---------------------------------------------<br />

*---------------------------------------------<br />

Sending petiti<strong>on</strong> to BB for install a filter.<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 2 (NO install filter)<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

Debug: SvcAuth record inserted<br />

---------------------------------------------<br />

*---------------------------------------------<br />

Sending petiti<strong>on</strong> to BB for install a filter.<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 1 (install traffic filter)<br />

Adding filter<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le: 1<br />

Tocken Bucket policer rate: 90 kbps<br />

Tocken Bucket policer burst: 1514 Bytes<br />

CEC Deliverable Number D0202 93 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

CORE: Created u32 filter to map IPv6 source <str<strong>on</strong>g>and</str<strong>on</strong>g> destinati<strong>on</strong> addresses <str<strong>on</strong>g>and</str<strong>on</strong>g> DSCP into class/PHB 1:1, filter h<str<strong>on</strong>g>and</str<strong>on</strong>g>ler 0:3,<br />

result: rc=0<br />

With Tocken-Bucket Policer: 92160 bps, burst: 1514 bytes<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

Debug: SvcAuth record inserted<br />

---------------------------------------------<br />

* C<strong>on</strong>necti<strong>on</strong> already installed, nothing to do..<br />

*---------------------------------------------<br />

Sending filter update request.<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 1 (filter update)<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

---------------------------------------------<br />

ACCESS: Obtaining Stats from all <strong>the</strong> qDisc... (Previous netlink_dump errors are normal), rc = 0<br />

Previous netlink_talk errors are normal, going <strong>on</strong>...<br />

T_dif: 20 *** Number: 0, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 1, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 2, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 3, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

C<strong>on</strong>necti<strong>on</strong> already installed, nothing to do..<br />

* C<strong>on</strong>necti<strong>on</strong> already installed, nothing to do..<br />

*---------------------------------------------<br />

Sending filter update request.<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

CEC Deliverable Number D0202 94 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 1 (filter update)<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

---------------------------------------------<br />

C<strong>on</strong>necti<strong>on</strong> already installed, nothing to do..<br />

* C<strong>on</strong>necti<strong>on</strong> already installed, nothing to do..<br />

*---------------------------------------------<br />

Sending filter update request.<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=1<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 2 (NO updade <strong>the</strong> filter)<br />

Deleting filter...<br />

Deleted <strong>the</strong> u32 filter with h<str<strong>on</strong>g>and</str<strong>on</strong>g>le 0:3, in dicipline: 1:0, result: rc=0<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

---------------------------------------------<br />

---------------------------------------------<br />

Sending KEEP ALIVE message.<br />

KEEP-ALIVE message received<br />

---------------------------------------------<br />

ACCESS: Obtaining Stats from all <strong>the</strong> qDisc... (Previous netlink_dump errors are normal), rc = 0<br />

Previous netlink_talk errors are normal, going <strong>on</strong>...<br />

T_dif: 20 *** Number: 0, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

CEC Deliverable Number D0202 95 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

T_dif: 20 *** Number: 1, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 2, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

T_dif: 20 *** Number: 3, ACCOUNT=> Average BW: 0 (kbps), Packets ps: 0, Drops ps: 0, Overlimits ps: 0<br />

---------------------------------------------<br />

Sending petiti<strong>on</strong> to BB for install a filter.<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=2<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 2 (NO install filter)<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

Debug: SvcAuth record inserted<br />

---------------------------------------------<br />

*---------------------------------------------<br />

Sending petiti<strong>on</strong> to BB for install a filter.<br />

CoA IPv6 address= 2001:720:410:1004:204:75ff:fe7b:9450<br />

Destinati<strong>on</strong> IPv6 address= 2001:720:410:1003:204:75ff:fe7b:943e<br />

DSCP= 0x22<br />

Message from <strong>QoS</strong> Broker<br />

DECISION message received<br />

Received a HANDLE object<br />

H<str<strong>on</strong>g>and</str<strong>on</strong>g>le=2<br />

Received a CONTEXT object<br />

Received a DECISION FLAGS object<br />

Received Flag: 0<br />

Received comm<str<strong>on</strong>g>and</str<strong>on</strong>g>: 2 (NO install filter)<br />

Sending a Success R.A. <str<strong>on</strong>g>Report</str<strong>on</strong>g> message to <strong>the</strong> <strong>QoS</strong> Broker...<br />

Debug: SvcAuth record inserted<br />

---------------------------------------------<br />

CEC Deliverable Number D0202 96 / 97


WP2-D0202 Versi<strong>on</strong> 1.0 4.6.2003<br />

CAPTURED 'Ctrl-C' signal. CLOSING CLIENT. Sending CLIENT-CLOSE message to <strong>the</strong> BB.<br />

Closing c<strong>on</strong>neti<strong>on</strong> with server...<br />

Cleaning all <strong>the</strong> root QDISC <strong>on</strong> <strong>the</strong> interface eth1, rc=0<br />

Previous netlink_talk errors are normal, going <strong>on</strong>...<br />

Cleaning all <strong>the</strong> root QDISC <strong>on</strong> <strong>the</strong> interface eth2, rc=0<br />

Previous netlink_talk errors are normal, going <strong>on</strong>...<br />

Debug: logger destroyed<br />

Closing client...<br />

CEC Deliverable Number D0202 97 / 97

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!