Sunteți pe pagina 1din 76

Laborator 1

Familiarizarea cu simulatorul EXata. Rularea unor scenarii simple.


În acest laborator se vor dezvolta următoarele abilități:

 Pornirea interfeței grafice a EXata și crearea unui scenariu nou


 Plasarea unor noduri, legături și crearea unor aplicații:
o Manual
o Automat
 Rularea unei simulări
 Vizualizarea și interpretarea rezultatelor unei simulări
1. Prezentarea EXata

1.1. Despre EXata


EXata este un mediu cuprinzător pentru dezvoltarea protocoalelor, crearea și animarea
scenariilor de folosire a rețelelor de t elecomunicații și evaluarea performanțelor sale. EXata se
compune din următoarele unelte:
 EXata Architect - O unealtă grafică pentru dezvoltarea și vizualizarea
experimentelor. Arhitectul are două moduri: modul Design pentru crearea scenariilor
și modul Visualize pentru rularea și vizualizarea experimentelor.
 EXata Analyzer – O unealtă pentru analizarea statisticilor grafice
 EXata Packet Tracer – O unealtă grafică pentru afișarea și analizarea urmelor
pachetelor
 EXata File Editor - Un editor de text
 EXata Command Line Interface (CLI) – Acces în linie de comandă la simulator

EXata poate rula sub Windows, Linux și Mac OS X. O listă completă cu cerințele de
sistem necesare pentru a funcționa se poate găsi în EXata-2.2-InstallationGuide din
documentație.
EXata e instalat în directoare diferite, în funcție de sistemul de operare și/sau alegerea
utilizatorului. Pe parcursul laboratoarelor următoare, directorul de instalare EXata va fi
denumit EXATA_HOME.

1.2. Simularea unei rețele de telecomunicații pe bază de scenariu


În EXata, o topologie de rețea este denumită scenariu. Un scenariu permite utilizatorului să
specifice toate componentele unei rețele și condițiile în care va opera aceasta. Acestea includ:
detaliile reliefului, efectele propagării undelor electromagnetice (atenuarea de cale, fading,
umbrire), subrețele cu și fără fir, dispozitive de rețea (switch -uri, huburi, rutere), întreaga stivă
de protocoale a diferite componente de rețea standard sau definite de utilizator și aplicații ce
rulează prin rețea. Multe dintre acestea sunt opționale; se poate porni cu un scenariu de bază și
se pot specifica apoi cât mai multe detalii necesare pentru a îmbunătăți acuratețea modelului
simulat.
Simularea Sistemelor de Comunicații Laborator 1

1.2.1. Modul de abordare


În general,o simulare cuprinde următoarele faze:
 Prima fază este crearea și pregătirea scenariului pe baza descrierii sistemului și a
metricilor de interes (vezi 1.2.2).
 Următorul pas este execuția, vizualizarea și analiza scenariului creat și colectarea
rezultatelor simulării. Aceste rezultate pot include animații ale scenariului, statistici
în timp real, statistici finale și output traces
 Ultima fază este analiza rezultatelor simulării. De obicei, utilizatorii trebuie să-și
adapteze scenariile pe baza statisticilor colectate.

1.2.2. Crearea scenariilor


Crearea unui scenariu se face în mai mulți pași. Mai întâi se configurează proprietățile
generale care sunt aplicabile întregului scenariu. Apoi, se specifică topologia rețelei prin
crearea de subrețele, plasarea nodurilor și definirea mobilității nodurilor. Apoi, este nece sară
configurarea stivei de protocoale pentru noduri singulare sau grupate, după cum este necesar.
Ultimul pas este configurarea parametrilor pentru colectarea rezultatelor simulării și controlul
în timp real al simulării.

1.2.3. Fișiere asociate cu un scenariu


Există mai multe fișiere de intrare pentru EXata (ce conțin parametrii necesari pentru
simulator). Fișierele de intrare sunt text, iar cele principale sunt:
 Fișierul de configurare a scenariului: Acesta este fișierul principal de intrare
pentru EXata și specifică scenariul și parametrii pentru simulare. Are de obicei
extensia „.config”.
 Fișierul de plasare a nodurilor : Acesta constituie o referință pentru fișierul de
configurare și specifică pozițiile inițiale și viitoare ale nodurilor din cadrul
scenariului. Are, de obicei, extensia „.nodes”.
 Fișierul de configurare a aplicațiilor: Acesta este, de asemenea, apelat de către
fișierul de configurare a scenariului și specifică aplicațiile care rulează pe nodurile
din scenariu. Are, de obicei, extensia „.app”
În plus față de acestea, EXata poate folosi și alte fișiere de intrare, după cum se va vedea și
în laboratoarele următoare. Acestea depind de modelele specificate în fișierul de configurare.
Când utilizatorul folosește interfața în linia de comandă, trebuie să le creeze manual.
La crearea unui scenariu în modul Architect, fișierele principale, ce reprezintă scenariul,
sunt create automat.
Fișierul principal generat de o rulare a unei simulări în EXata este un fișier cu statistici, cu
extensia „.stat”. Fișierul conține statisticile colectate în cadrul simulării. Alte fișiere ce pot fi
generate de simulator includ fișierul de urmărire (trace) (cu extensia „.trace”) care
înregistrează urmele pachetelor și fișierul de animație (cu extensia „.anim”) care înregistrează
animația uni scenariu rulat în Arhitect.
Atât fișierele de statistici și trace sunt de tip text și pot fi deschise cu orice editor de text. În
plus, se poate folosi Analyzer pentru a vizualiza conținutul lor într-un mod grafic, ușor de
analizat.

2
Simularea Sistemelor de Comunicații Laborator 1

1.3. Simulare și Emulare

EXata este, de fapt, un emulator de rețea care permite evaluarea rețelelor de comunicații,
creând o replică virtuală a unei rețele care se interfațează cu rețele și aplicații reale.
Un emulator de rețea mimează funcționalitățile unei rețele reale, astfel încât aceasta să
apară, să interacționeze și să se comporte precum o rețea reală. Astfel, sistemul emulat nu
poate fi deosebit de unul real. Folosirea unui emulator permite o metodă de evaluare eficientă
din punctul de vedere al costurilor a noilor tehnologii înainte de a începe construcția propriu -
zisă a rețelelor sau sistemelor.
Un simulator de rețea redă comportamentul unei rețele reale, dar nu poate interacționa cu
aceasta. Folosește o reproducere sau o abstractizare a sistemului real și singurul său scop e de
a reproduce comportamentul acestuia. O simulare a unei rețele este o metodă eficientă folosită
în cadrul primelor etape de dezvoltare a rețelelor. Utilizatorii pot evalua comportamentul
primar al rețelei și pot testa combinații ale proprietăților rețelei care sunt susceptibile de a
funcționa.
Emularea rețelelor ajută la dezvoltarea așa-numitelor „net-centric systems” sau sisteme de
rețele, furnizând un mediu în care deciziile de proiectare alese pot fi schimbate rapid și
impactul lor evaluat. Utilizatorii pot folosi rețeaua emulată și vedea cum aplicațiile lor (VoIP,
redare video etc.) se vor comporta când sistemul real este construit. Rețeaua emulată poate, de
asemenea, fi integrată cu sisteme mai vechi pentru a testa interoperabilitatea cu acestea și a
forma utilizatorii pentru rețelele de generații viitoare.

2. Prezentarea mediului vizual al EXata, crearea și rularea unui scenariu


Interfața grafică (GUI) a EXata se deschide printr-un dublu click al iconiței de pe Desktop:

La pornirea EXata, implicit acesta se va deschide în modul Architect. Fereastra afișată la


pornirea EXata este aceasta:

3
Simularea Sistemelor de Comunicații Laborator 1

Notă: Implicit, la pornirea EXata, modul de lucru este emulare. Totodată, la fiecare încărcare
a unui scenariu, modul de lucru este tot emulare. Va trebui, pentru a rula EXata în modul
simulare, ca, de fiecare dată, să se selecteze modul „Simulation” din bara de emulare.

S.1. Zona de lucru pentru un nou scenariu este deja creată și ea trebuie doar salvată. Pentru
a salva un scenariu, se apasă File > Save din meniu (sau Ctrl+S folosind tastatura) și se
navighează către directorul %EXATA_HOME%/scenarios/user. Se denumește scenariul
Lab1.config. Se va crea automat un director cu același nume în care va fi plasat fișierul
.config.

4
Simularea Sistemelor de Comunicații Laborator 1

Din Panoul lateral cu unelte de lucru, de sub bara Devices se selectează Default device
(prima iconiță din stânga). Apoi se face click pe zona de lucru în colțurile din stânga -sus și
dreapta-jos (se creează astfel nodurile 1 și 2). Se face clic în continuare pentru a amplasa m ai
multe noduri între cele două, aproximativ ca în figura de mai jos:

Se apasă pe Select în bara de aspect și apoi se mută nodurile prin zona de lucru folosind
mouse-ul. Se face clic dreapta pe un nod și se selectează Properties pentru a vedea
proprietățile implicite ale nodului respectiv:

5
Simularea Sistemelor de Comunicații Laborator 1

Se creează o aplicație de tip CBR (rată de bit constantă) între nodurile 1 și 2 astfel: în
panoul lateral, se apasă CBR din bara Applications, apoi se face clic pe nodul 1 și se ține
apăsat; se deplasează mouse-ul pe nodul 2 și se dă drumul. Pentru a vedea proprietățile
implicite ale aplicației, se face click dreapta pe legătura CBR și se selectează Properties.

Se șterg toate nodurile în afară de 1 și 2 folosind unealta Select pentru a selecta nodurile și
apoi se apasă tasta Delete sau se face click-dreapta și se selectează Delete din meniul pop-up.
Mai simplu, se poate folosi unealta Lasso pentru a se selecta toate nodurile deodată și a le
șterge.

6
Simularea Sistemelor de Comunicații Laborator 1

În final, ar trebui să rămână doar nodurile 1 și 2 și aplicația CBR î n zona de lucru.

Se selectează din meniu Tools > Node Placement. Va apărea o astfel de fereastră:

Se introduc următoarele setări:

Number of Nodes: 25
Placement Model: Uniform

Se creează încă 2 aplicații CBR între nodurile 21 -25 și 5 -20. Zona de lucru ar trebui să
arate acum aproximativ așa:

7
Simularea Sistemelor de Comunicații Laborator 1

Se alege „Simulation” din bara de emulare. Se apasă acum butonul Run Simulation din

Bara de rulare (butonul ). Se apasă butonul Play. Se vizualizează pentru o perioadă,


apoi se pune pauză.

În panoul lateral din partea stângă, se selectează Animation Filters > Event Filters >
Node Radio Range:

Se apasă Play și se lasă scenariul să ruleze până la sfârșit. Prin activarea acestui filtru se
poate vedea acoperirea radio a unui nod. Zona de lucru va arăta aproximativ astfel:

8
Simularea Sistemelor de Comunicații Laborator 1

Se selectează din meniu Animation > Step Setting > By Command. Va apărea
următoarea fereastră:

Se setează Command Interval la valoarea 100. Se apasă OK. Apoi se apasă butonul Step

din bară ( ). Astfel simularea va avansa cu un pas de 100 de comenzi, la fiecare apăsare a
butonului. Apăsați de câteva ori, apoi se apasă Play și se lasă scenariul să ruleze până la
sfârșit.

Se face click pe Output Window din panoul inferior și se observă mesajele de ieșire și
faptul că scenariul a rulat 100%.(De obicei, dacă apare o eroare, zona se extinde automat
pentru ca utilizatorul să vadă ce erori au apărut).

9
Simularea Sistemelor de Comunicații Laborator 1

Se observă că butonul Analyze Statistics of the Current Scenario a devenit activ.

Se apasă din nou butonul Run Simulation. Se selectează din meniu Animation >
Dynamic Statistics > Scenario Statistics. În fereastra ce apare, se setează următoarele:

 Se bifează IP: Number of Packets Received.


 Se alege opțiunea Per node
 Se setează intervalul dintre două actualizări succesive ale statististicilor: 100 ms

Se rulează scenariul. Rezultatul final arată aproximativ în felul următor:

10
Simularea Sistemelor de Comunicații Laborator 1

E.1. Se vizualizează statisticile apăsând butonul . Se face clic pe Application > CBR
Server > Total Packets Sent. Se observă valorile pentru cele 3 noduri client (1, 5 și 21). Se
face apoi clic tot în submeniul Application pe CBR Client > Total Packets Received.

Q.1. Se compară numărul de pachete de date trimise de clienți (nodurile 1, 5, respectiv 21)
cu numărul de pachete primite de către servere (2, 20, respectiv 25). De ce diferă? Există
soluții pentru ca pierderile de pachete să fie mai mici (ideal nule)?

3. Simularea unei rețele cu fir. Utilizarea EXata Packet Tracer


S.2. Dacă există scenarii deschise, se închide fiecare prin apăsarea butonului Close Tab
( ). Va rămâne zona de lucru implicită. Se salvează scenariul cu numele Lab1-2 în
directorul %EXATA_HOME%/scenarios/user.

Se plasează pe zona de lucru două noduri. Se face clic pe unealta Link din panoul lateral
de sub tabul Links. Se face clic pe nodul 1 și se trage mouse -ul până la nodul 2, apoi se dă
drumul. Se creează astfel o conexiune de tip punct-la-punct (cablată) între cele 2 noduri.

Se face clic dreapta pe legătură și se alege Properties. Se fac, sau se verifică existența
următoarelor setări:

 Link Type: Wired


 MAC Protocol: Abstract Link MAC
 Symmetric: Yes
 Bandwidth: 2 Mbps
 Use Station VLAN Tagging: No

11
Simularea Sistemelor de Comunicații Laborator 1

Se face clic pe aplicația CBR din panoul lateral și se definește o aplicație CBR de la nodul
2 la nodul 1. În acest moment, se va vedea doar una din cele două (aplicația sau l egătura
punct-la-punct). Faptul că există mai mult de o conexiune între două noduri va fi denotat de
un + care apare deasupra liniei:

Pentru a comuta între cele două, se face clic dreapta și se alege Links and Applications >
CBR sau Link.

E.2. Se rulează simularea și se vizualizează rezultatele.

Se apasă pe Architect din bara de componente pentru a reveni la modul Architect. Apoi se

apasă butonul Switch to Design Mode ( )pentru a modifica scenariul.

Se șterge aplicația CBR și legătura punct -la-punct. Se adaugă încă 7 noduri:

 4 switch-uri conectate în romb (Panoul lateral > Devices > Switch)


 2 noduri conectate la unul din switch-uri printr-o legătură punct-la-punct
 2 noduri conectate la un hub (Panoul lateral > Network Components > Hub),
folosind o legătură 802.3 (legătura se creează implicit de tip 802.3)

12
Simularea Sistemelor de Comunicații Laborator 1

E.3. Se adaugă o aplicație de tip Lookup între nodurile 1 și 4. În EXata, Lookup este un
model abstract de trafic de tip cerere/răspuns cum ar fi DNS look-up sau ping. Se setează
următoarele:

 Reply Delay: 1 ms
 Start time: 5 min
 End Time: 10 min

13
Simularea Sistemelor de Comunicații Laborator 1

În panoul lateral se apasă pe Scenario Properties > Open Scenario Properties.

Se setează General Settings > Simulation Time să fie 10 minute

Se rulează simularea și se încearcă setarea vitezei de execuție cât mai mică pentru a
permite vizualizarea detaliilor animației.

E.4. Se vizualizează rezultatele, apoi se schimbă momentul de start al aplicației la 1 minut.


Se mai mărește numărul de pachete trimise ( Requests to send) la 500 și se reia simularea.

Q.2. Se notează momentul la care a fost trimis primul pachet de către client, momentul la
care primul pachet este primit de către server și intervalul mediu dintre momentul trimiterii
unei cereri și momentul primirii răspunsului ( Average Roundtrip Delay). Ce legătură există
între valorile obținute?

E.5. Se șterge aplicația Lookup și se creează din nou o aplicație CBR între nodurile 1și 4.
Se face clic dreapta pe aplicație și se introduc următoarele setări:

 Items to Send: 500


 Interval: 20 ms
 Start Time: 0 s
 EndTime: 10 s

Q.3. Se rulează simularea și se verifică statisticile de la CBR Server și CBR Client. Ce se


întâmplă? Care ar putea fi explicația?

14
Simularea Sistemelor de Comunicații Laborator 1

E.6. Se modifică proprietățile aplicației CBR astfel:

 Items to Send: 100


 Interval: 200 ms
 Start Time: 20 s
 End Time: 50 s

Q.4. Se rulează iar simularea și se compară momentul la care a fost trimis primul pachet de
către client cu momentul la care primul pachet este primit de către server. Luând în
considerație aceste valori, care este cauza pierderilor de pachete și care ar putea fi soluția (sau
soluțiile) pentru remedierea problemei?

Se revine în modul Design prin apăsarea butonului Switch to Design Mode. Se activează
modul Packet Tracer astfel:

Se face clic pe Scenario Properties > Open Scenario Properties, apoi tabul Statistics
and Tracing. Se introduc următoarele:

 Enable Packet Tracing: Yes


 Trace All Layers: Yes
 Trace Direction: Both
 Trace Included Headers: No
 Enable Access List Tracing: No

E.7. Se rulează iar simularea, iar după terminarea acesteia se face clic pe fișierul .trace
corespunzător din fereastra File system din bara de componente și se apasă Open din meniul
apărut:

15
Simularea Sistemelor de Comunicații Laborator 1

Se va deschide modul Packet Tracer și fereastra va arăta asemănător cu aceasta:

4. Simularea unei rețele fără fir


S.3. Se creează un nou scenariu cu durata de 2 minute. Se salvează cu numele Lab1-2. Se
verifică dimensiunile zonei de lucru. Aceasta trebuie să fie de 1500m x 1500m. Dimensiunile
se modifică din Scenario Properties > Terrain > Coordinate System > Scenario
Dimensions.

Se plasează 7 noduri pe diagonală de la colțul din stânga -sus la cel din dreapta-jos.

16
Simularea Sistemelor de Comunicații Laborator 1

Fiecare scenariu are o subrețea fără fir ( wireless subnet) implicită. Orice nod plasat în zona
de lucru ce nu este conectat la un alt dispozitiv sau o altă subrețea face parte din subrețeaua
implicită. Aceasta nu este reprezentată în nici un fel pe zona de lucru. Se face clic pe View >

Display Settings (sau pe butonul din bara de aspect) și se bifează IP Address. Astfel,
adresele IP asociate fiecărui nod vor apărea pe zona de lucru. Se observă astfel că toate
nodurile fac parte din aceeași subrețea.

Se face clic pe Scenario Properties > Channel Properties. Se fac următoarele setări:

 Number of Channels: 1
 Channel Frequency[0]: 2.0 GHz
 Pathloss Model[0]: FreeSpace (modelul atenuării de cale în spațiu liber)

E.8. Se definește o aplicație CBR de la nodul 1 la 7. Se aleg parametrii aplicației astfel încât
să încapă în durata de 2 minute a simulării. Se rulează scenariul și se vizualizează rezultatele
în Analyzer, notând numărul total de pachete trimise și recepționate.

Se revine în modul Design. Modificarea proprietăților nivelului fizic se poate face fie la nivel
de subrețea, fie la nivel de nod, fie la nivel de interfață. Fiind mai comod, se vor modifica
proprietățile subrețelei fără fir implicite. Se face clic în panoul inferior pe Table View >
Networks, se dă clic dreapta pe Default Wireless Subnet și se alege Properties apoi din
fereastra care apare, tabul Physical Layer.

17
Simularea Sistemelor de Comunicații Laborator 1

Se modifică puterile de emisie la valorile 11, 12, 15, respectiv 20 dBm.

E.9. Se rulează scenariul, se vizualizează rezultatele și se notează din nou, numărul de pachete
trimise și recepționate.

E.10. Se revine în modul Design și, folosind procedura descrisă mai sus, se deschide fereastra
ce conține proprietățile nivelului fizic. Se modifică rata de date la 5.5 Mbps și se reia
simularea.

Q.5. Ce se întâmplă acum? (Indicație: Se verifică statisticile de la nivelul MAC > 80211DCF
> Packet Drops due to retransmission limit, RTS packets sent și CTS packets sent)

Q.6. Se poate modifica scenariul pentru a nu avea pierderi de pachete la rata de transmisie de
2 Mbps?

18
Laborator 2

Simularea rețelelor complexe folosind EXata


Scopul acestui laborator este de a dezvolta următoarele abilități:

 Dezvoltarea unor rețele cu fir complexe


 Depanarea încărcării legăturilor radio
 Crearea unui scenariu cu mai mult de un canal radio
 Diferențierea între diversele tipuri de antene
 Rularea în serie a scenariilor (Batch Experiment)
 Folosirea modelelor de fading

1. Simularea unei rețele cu fir complexe. Crearea rutelor statice.

S1. Se creează un scenariu cu următoarea topologie:

 Nodurile 1 și 2 sunt conectate la nodul 3 printr-o legătură punct-la-punct de 10


Mbps cu o întârziere de propagare de 1 ms
 Nodul 3 este conectat la nodul 4 printr-o legătură punct-la-punct de 1 Mbps cu o
întârziere de propagare de 1 ms
 Nodurile sunt plasate ca în figură:
Simularea Sistemelor de Comunicații Laborator 2

Nodul 1 și nodul 2 trimit fiecare trafic tip CBR către nodul 4. Fiecare trimite 750 de
pachete de date (512B) la fiecare 1 ms începând de la 0 s la 30 s.

Se face clic pe Open Display Settings și se bifează IP Address și Interface Name. Se


notează adresele IP corespunzătoare interfeței pentru fiecare nod.

Folosind un editor de text, se creează un fișier numit Lab2-1.routes-static. Folosind


adresele IP ale interfețelor (dacă nu se disting, se poate folosi zoom), se definesc următoarele
rute ca în figură:

Sintaxa unui fișier de rutare este următoarea:

<identificator nod> <adresa destinației> <adresa următorului hop>

Se verifică dacă intrările respectă sintaxa și se salvează și închide fișierul. Nu are


importanță unde este salvat fișierul, dar cel mai indicat este în același director cu scenariul.

Se dă clic pe Table View în panoul inferior și apoi sub tabul Networks, se selectează,
ținând apăsat Ctrl toate elementele existente (sau alternativ, pe zona de lucru se selectează, tot
cu Ctrl, toate cele trei legături), se dă clic dreapta și se alege Properties. În fereastra care
apare, se face clic pe Routing Protocol și se specifică următoarele:

 Specify Static Routes: Yes


 Static Route File: se navighează către directorul unde a fost salvat fișierul de
rutare și se alege acesta

20
Simularea Sistemelor de Comunicații Laborator 2

În Display Settings se bifează Queues pentru a vizualiza cozile de așteptare ale nodurilor.
Se apasă Run și, înainte de a apăsa Play, se verifică sub Event Filters, activarea filtrului
Packet Queuing. Se apasă Play pentru a rula scenariul. Se vizualizează rezultatele.

E1. Notați numărul de pachete primite de server, respectiv trimise de client. Notați
numărul de pachete aruncate de nivelul rețea (Network->FIFO->Total Packets Dropped)

E2. Modificați parametrii scenariului astfel încât să nu mai existe pachete aruncate.

E3. Schimbați direcția uneia dintre legăturile CBR (de ex: în loc de 1 ->4 să fie 4->1).
Modificați corespunzător fișierul La b2-1.routes-static. Rulați din nou scenariul și notați
statisticile cerute la E1

2. Simularea unei rețele complexe fără fir. Crearea mai multor canale radio.

S2. Se creează un nou scenariu numit Lab2-2. Nodurile se plasează conform ilustrației de
mai jos:

21
Simularea Sistemelor de Comunicații Laborator 2

Se deschide Scenario Properties > Channel Properties. Se adaugă un nou canal radio
modificând Number of Channels la valoarea 2. Se apasă iconița pentru a vizualiza și
modifica proprietățile celor două canale radio. Canalele apar într-o listă și sunt indexate
începând cu 0. Se modifică frecvența canalului 1 la valoarea 2,5 GHz.

22
Simularea Sistemelor de Comunicații Laborator 2

Se adaugă două subrețele fără fir, și se conectează nodurile ca în figura de mai sus folosind
unealta Link din panoul lateral. Se modifică proprietățile ambelor subrețele astfel încât fiecare
să utilizeze canale radio diferite. Pentru aceasta se face clic dreapta pe fiecare din subrețelele
reprezentate pe zona de lucru, se alege Properties > Physical Layer și se editează valorile
câmpurilor Listenable și Listening Channel Mask, astfel încât să aibă valorile 10 pentru cea
din stânga și 01 pentru cea din dreapta:

23
Simularea Sistemelor de Comunicații Laborator 2

Se adaugă o aplicație Traffic Gen de la nodul 1 la nodul 5 cu următorii parametri:

 Start Time Distribution: Deterministic

o Start Time: 1 s

 Duration Distribution: Deterministic

o Duration Time: 30 s

 Packet Size Distribution: Uniform

o Smallest Packet Size: 1 byte

o Largest Packet Size: 2020 bytes

 Packet Interval Distribution: Uniform

o Shortest Packet Interval: 10 ms

o Longest Packet Interval: 100 ms

Restul parametrilor rămân cei impliciți.

E4. Se rulează simularea și se notează rezultatele (numărul de pachete – data units –


trimise și recepționate, întârzierea cap-la-cap și jitter-ul). Dacă numărul de pachete
recepționate este mai mic decât cel de pachete trimise, se notează și câte pachete au fost
aruncate (fie la Network fie la MAC->802.11DCF->Packet drops due to retransmission limit).

24
Simularea Sistemelor de Comunicații Laborator 2

3. Rularea experimentelor în serie (batch mode). Folosirea modelelor de propagare.

S3. Se creează un nou scenariu numit Lab2-3. Acesta va consta în următoarele:

 25 de noduri distanțate la 300m unul de celălalt


o Se alege din meniu Tools > Node Placement. Se introduc setările:
 Number of Nodes: 25
 Placement Model: Grid
 Grid Unit: 300
o Se apasă OK

 O aplicație CBR de la nodul 21 la nodul 5

25
Simularea Sistemelor de Comunicații Laborator 2

 Se folosește modul de execuție în serie (Batch Mode) pentru a rula scenariul cu


următoarele configurații:
o Model de propagare deasupra suprafețelor reflectante ( Two-Ray) sau în
spațiu liber (Free Space) (Scenario Properties->Channel Properties-
>Pathloss Model) cu înălțimile antenelor de 1,5 și 3,5 m (Default Wireless
Subnet Properties->Physical Layer->Specify Antenna Model From File-
>Antenna Height)

Pentru a rula în modul Batch, se lucrează cu tabul Batch Experiments din panoul inferior.
Parametrii ce trebuie modificați în cursul simulărilor multiple trebuie adăugați fiecare în
tabelul cu parametri din Batch Experiments. Acest lucru se face mergând la fereastra de
editare a parametrului ca în cazul unui scenariu obișnuit, se face click pe acel parametru și se
apasă butonul Add to Batch.

Atenție! Dacă un parametru este dependent de un parametru părinte, atunci acela trebuie
adăugat primul în tabelul cu parametri. De exemplu, pentru a adăuga Pathloss Model, trebuie
mai întâi adăugat parametrul Number of Channels

26
Simularea Sistemelor de Comunicații Laborator 2

Pentru a specifica valorile pentru fiecare parametru se apasă butonul corespunzător


fiecărui parametru din coloana Value ceea ce va duce la deschiderea unui editor pentru
specificarea parametrilor. Se introduce fiecare parametru și se apasă Add de fiecare dată.
După ce se introduc toți parametrii, se închide editorul.

Se apasă apoi butonul Run Experiments, ceea ce va duce la apariția fere strei de alegere a
modului de rulare. Se alege Non-Interactive.

În modul non-interactiv, toate experimentele sunt executate unul după altul fără intervenția
utilizatorului. Execuția scenariului nu este animată. Fiecare din experimente se numește
Experiment-1, Experiment-2 ș.a.m.d. și fișierele asociate fiecărui experiment sunt denumite
corespunzător. Acestea sunt plasate automat într-un subdirector numit BatchRun din
directorul scenariului.

E5. Se analizează statisticile rezultate în urma execuției scenar iului și se identifică


experimentul (sau experimentele) cu cele mai bune rezultate (pierderi minime de pachete). Se
notează, deschizând fișierul .config corespunzător ce valori ale parametrilor au fost folosite.

S4. Pe baza experimentului de mai sus, se rulează același scenariu în mod Batch cu
următorii parametri:

 Parametri impliciți
 Model de propagare Two-Ray cu o înălțime a antenei de 1.5 m:
o Fără fading
o Fading Rayleigh

27
Simularea Sistemelor de Comunicații Laborator 2

o Fading Rice (K = 5)

E6. Se vizualizează și se compară rezultatele simulărilor, notând valorile parametrilor


folosiți pentru care s-au obținut rezultatele cele mai bune.

4. Folosirea antenelor directive în simulări

Modelele de antenă prezente în EXata sunt următoarele:

 omnidirectivă: are același câștig pentru orice direcție;

 orientabilă (steerable): direcția lobului principal poate fi variată, pentru


maximizarea câștigului într -o anumită direcție ;

 cu comutare a lobului principal (switched beam): are mai multe caracteristici de


radiație dintre care este aleasă cea cu câștigul cel mai mare pentru direcția dată.

S5. Se creează un nou scenariu intitulat Lab2-4. Se plasează 3 noduri în linie la o distanță
de aproximativ 500 m între ele și se creează o aplicație CBR între nodurile 1 și 3. Se vor
folosi setările implicite mai puțin modelul de antenă.

Se setează modelul de antenă la antenă direcțională tot la nivelul subrețelei fără fir
implicite. În tabul Physical Layer din proprietățile acesteia, se scriu următoarele:

 Specify Antenna Model from Files: No


 Antena Model: Switched Beam

28
Simularea Sistemelor de Comunicații Laborator 2

 Antena Azimuth Pattern File: se navighează și se alege fișierul


EXATA_HOME/data/antenna/default.antenna-azimuth

Apoi, în tabul MAC Layer se setează opțiunea Enable Directional Antenna Mode: Yes
și se lasă setările care apar implicite.

29
Simularea Sistemelor de Comunicații Laborator 2

Se rulează scenariul, încetinind viteza de execuție pentru a se putea observa caracteristicile


de radiație ale antenelor. Dacă simularea rulează prea repede chiar și la viteza cea mai mică,
se poate mări durata simulării împreună cu o creștere corespunzătoare a numărului de pachete
generate.

Se observă rezultatele și apoi se încearcă următoarea modificare:

30
Simularea Sistemelor de Comunicații Laborator 2

E7. Se adaugă încă două noduri în mijloc, între cele 3 noduri. Se rulează scenariul și se
observă rezultatele, apoi se revine la modul Design și se mută cele două noduri în sus sau în
jos. Se rulează din nou scenariul. Ce se observă?

Se revine în modul Design și se mută unul din noduri înapoi pe linie. Se setează, folosind
pașii de mai devreme, modelul de antenă la steerable antenna. Se alege fișierul
steerable.antenna-azimuth:

E8. Se rulează scenariul și se observă diverșii lobi laterali.

31
Simularea Sistemelor de Comunicații Laborator 2

32
Laborator 3

Simularea unei rețele GSM. Folosirea utilitarelor auxiliare ale EXata


1. Utilitarul Radio Range

Programul radio_range, localizat în directorul EXATA_HOME/bin este un utilitar în linie


de comandă care întoarce acoperirea radio a unui nod, lunând în considerație setul de
parametri specificați în fișierul de configurare (.config) al scenariului. Presupune că nu există
interferențe de la celelalte emițătoare. Valorile date de acest utilitar sunt aproximative, din
moment ce componentele aleatoare cum ar fi fadingul și umbrirea nu sunt luate în
considerație la estimarea distanței.

Pentru a folosi programul radio range, se deschide o linie de comandă se schimbă


directorul curent cu cel în care e plasat scenariul și se apelează programul ca mai jos:
c:\snt\exata\2.2\scenarios\user\director_nume_scenariu>..\..\..\bin\radi
o_range.exe nume_scenariu.config

Se va afișa ceva similar cu linia de mai jos: (exemplu pentru 802.11):


radio range: 483.741m, for 802.11b data rate 1.0 Mbps
radio range: 370.968m, for 802.11b data rate 2.0 Mbps
radio range: 356.973m, for 802.11b data rate 5.5 Mbps
radio range: 283.554m, for 802.11b data rate 11.0 Mbps
Simularea Sistemelor de Comunicații Laborator 3

2. Scriptul Urban Grid

Scriptul Urban Grid (urban_grid.pl) este un script scris în limbajul Perl plasat în
directorul EXATA_HOME/bin care poate fi folosit pentru a genera eșantioane de date cu
caracteristici ale terenului (clădiri, străzi, parcuri, stații de metrou) în format de teren specific
EXata (un fișier tip .xml). Datele sunt generate în coordonate carteziene.

Străzile sunt aranjate într-o grilă. O stație de metrou este plasată în fiecare din cele 4
colțuri ale grilei. Un bloc al grilei trebuie să fie un parc. Toate celelalte blocuri au clădiri
plasate aleator. Înălțimile clădirilor sunt alese la întâmplare dintr -o gamă specificată. Liniile
sunt numerotate începînd cu 0, crescînd în direcția axei Y. Coloanele sunt numerotate
începând de la 0, crescând în direcția axei X. Semafoare nu sunt generate cu acest utilitar.

Datele de ieșire sunt afișate pe ecran dacă nu sunt direcțio nate către un fișier.

Pentru a folosi scriptul Urban Grid, se tastează următoarea comandă (toți parametrii
trebuie scriși pe o singură linie):
perl urban_grid.pl <num_linii> <num_col> <lat_grila> <lat_strada>
<linie_parc> <coloana_parc> <inalt_min> <inalt_max>

unde

<num_linii> numărul de linii generate

<num_col> numărul de coloane generate

<lat_grila> Distanța dintre blocuri în metri

<lat_strada> Lățimea străzilor în metri

<linie_parc> Numărul liniei unde parcul este situat

<coloana_parc> Numărul coloanei unde parcul este situat

<inalt_min> Înălțimea minimă a unei clădiri

<inalt_max> Înălțimea maximă a unei clădiri

Exemplu de utilizare(textul afișat în consolă va fi direcționat către fișierul


mapdata001.xml) :
perl urban_grid.pl 3 3 320 20 1 1 50 100 > ../mapdata001.xml

Notă: Comanda perl va funcționa numai dacă este instalată o variantă de perl pe stația de
lucru.

Comanda de mai sus va produce fișierul de teren mapdata001.xml plasat în directorul


EXATA_HOME. Pentru a-l încărca într-un scenariu din EXata, se procedează în felul
următor:
34
Simularea Sistemelor de Comunicații Laborator 3

 Se creează un nou scenariu și se salvează cu numele ales


 Se navighează la Scenario Properties > Terrain și se introduc umătoarele:
o Specify Urban Terrain Features: Yes
o Urban Terrain Features Format: EXata Terrain Format
o Number of Terrain Files: 1
o Urban Terrain Features File[0]: cale_către_fișier/mapdata001.xml
 Se apasă OK

Spațiul de lucru arată astfel:

Aceasta este o privire de sus, corespunzătoare modului de vizualizare implicit al EXata și


anume X-Y View. Pentru a vedea terenul din perspectivă, se va alege modul 3-D View din
meniul de vizualizare:

Acum, terenul arată astfel:

35
Simularea Sistemelor de Comunicații Laborator 3

Pentru a manipula vizualizarea în mod 3-D a scenariului, se pot folosi următoarele butoane:

 Rotate (3D View) - Rotește imaginea


 Pan - Mută/mișcă vederea scenariului
 Zoom - Mărește

 Binoculars (3D View) - Vedere de aproape a unei anumite porțiuni a spațiului de


lucru

 Free Camera (3D View) - Mișcare liberă a camerei

Notă: Scriptul urban_grid.pl generează o zonă dreptunghiulară cu blocurile ocupate fiecare


fie de parc sau clădiri. Pentru a genera un teren oarecare dorit există două variante:

1. Se generează folosind scriptul Urban Grid o grilă cu dimensiuni acoperitoare relativ la


terenul dorit, după care se editează fișierul .xml generat, ștergând din acesta etichetele
corespunzătoare obiectelor nedorite. De exemplu, dacă se dorește ștergerea unei
clădiri, se șterge marcajul <Building>....</Building> corespunzător; dacă se
dorește ștergerea unei străzi, se șterge marcajul
<Street_Segment>...</Street_Segment> ș.a.m.d.
2. Dacă se dispune de terenul dorit în format ESRI (extensia .shp), atunci se poate folosi
utilitarul Shapefile-to-XML disponibil în același director. Acesta va converti terenurile
din format ESRI în format .xml folosind următoarea sintaxă:
shptoxml [<opțiuni>] <nume_fișier>

Lista cu opțiuni, precum și alte detalii se găsesc în Anexa D5 din EXata User’s Guide

36
Simularea Sistemelor de Comunicații Laborator 3

3. Simularea unei rețele GSM

E1. Se creează un nou scenariu cu numele Lab3-1.config și se creează 8 canale radio cu


următoarele proprietăți:

 4 canale (Fiecare este o pereche de legături ascendentă și descendentă) câte unul


pentru fiecare stație de bază
 Frecvența pe canalul ascendent este f a = 890 MHz + 0,2*n (unde n este numărul
canalului)
 Frecvența pe canalul descendent este f d = fa + 45 MHz

1. Se completează următoarele câmpuri la Scenario Properties > Channel Properties:


o Number of Channels: 8
o Channel Frequency[0]: 935 MHz
o Channel Frequency[1]: 890 MHz
o Channel Frequency[2]: 935.2 MHz
o Channel Frequency[3]: 890.2 MHz
o Channel Frequency[4]: 935.4 MHz
o Channel Frequency[5]: 890.4 MHz
o Channel Frequency[6]: 935.6 MHz
o Channel Frequency[7]: 890.6 MHz
2. La Statistics and Tracing > File Statistics se bifează GSM
3. Se face clic pe Tools > Toolset Editor > Customized Toolbar și se adaugă nodurile
GSM-BASE-STATION, GSM-MOBILE-STATION și GSM-MOBILE-
SWITCHING-CENTER în bara de unelte Devices. Se apasă OK. (Dacă sunt deja
prezente, se ignoră acest pas.)

37
Simularea Sistemelor de Comunicații Laborator 3

4. Se plasează 2 stații de bază împreună cu un MSC între acestea. Se conectează toate


BS-urile printr-o subrețea fără fir. Se conectează fiecare BS cu MSC -ul. Apoi se
adaugă 7 stații mobile. Zona de lucru ar trebui să arate acum aproximativ ca în figura
de mai jos.

5. Se configurează GSM la nivelul stațiilor de bază și MSC:


o Din Table View->Networks se face clic dreapta pe Wireless Subnet (nu
Default Wireless Subnet), se alege Properties > Physical Layer și se
completează următoarele:
 Listening Channel Mask: 00000000 (0 pentru toate canalele)
 Radio Type: GSM
 Packet Reception Model: BER-based Reception Model
 Number of BER Tables: 1
 BER Table[0]: C:/snt/exata/2.2/data/modulation/gmsk.ber
o Se trece la MAC Layer și se completează:
 MAC Protocol: GSM
 GSM Control Channel List: poate rămâne valoarea implicită, va fi
configurat ulterior la nivel de nod.
o La Network Layer > General Properties se scrie:
 Network Protocol: GSM Layer3
 GSM Node Type: Base Station

38
Simularea Sistemelor de Comunicații Laborator 3

o Se apasă OK
o Se face clic dreapta pe Default Wireless Subnet, se alege Properties >
Physical Layer și se completează următoarele:
 Listening Channel Mask: 00000000 (0 pentru toate canalele)
 Radio Type: GSM
 Packet Reception Model: BER-based Reception Model
 Number of BER Tables: 1
 BER Table[0]: C:/snt/qualnet/5.0/data/modulation/gmsk.ber
o Se trece la MAC Layer și se completează:
 MAC Protocol: GSM
 GSM Control Channel List: [0 4] (canalele de control ale tuturor
stațiilor de bază din simulare)
o La Network Layer > General Properties se scrie:
 Network Protocol: GSM Layer3
 GSM Node Type: Mobile Station
o Se face apoi clic dreapta pe Link, se alege Properties > Network Protocol și
se alege
 Network Protocol: GSM Layer3
o Se repetă pentru cealaltă legătură punct-la-punct
o Se face clic pe MSC și se specifică:
 La Network Layer > General Properties se scrie:
 Network Protocol: GSM Layer3
 GSM Node Type: Mobile Switching Center

6. Se alocă un canal de control pentru fiecare stație de bază:
o Se face clic dreapta pe BS1 și se alege Properties > Interfaces > Interface# >
MAC Layer (# corespunde numărului interfeței GSM)
o Se introduc următoarele:
 BS Downlink Control Channel: [0]
 Location Area Code: 226
 Cell ID: 1
 Channel Range: 0-3
 Neighboring Base Stations: 4-226-2
o Se repetă pentru BS2:
 BS Downlink Control Channel: [4]
 Location Area Code: 226
 Cell ID: 2
 Channel Range: 4-7
 Neighboring Base Stations: 0-226-1

Notă: În mod normal, valoarea pentru Neighboring Base Stations nu o să poată fi


selectată pentru BS1, deoarece BS2 încă nu a fost configurată. După ce BS2 este
configurată, se revine și se configurează Neighboring Base Stations pentru BS1. Dacă tot
nu apare nimic, va trebui editat manual fișierul Lab3 -1.gsm după sintaxa următoare:

39
Simularea Sistemelor de Comunicații Laborator 3

# GSM-BS [NodeId] [LAC] [CellId] [ChannelRange] [MSC NodeId]


[Neigh.BS Info]

GSM-BS 2 226 2 4-7 3 0-226-1

GSM-BS 1 226 1 0-3 3 4-226-2

7. Se configurează canalele de control pentru stațiile mobile:


o Se face clic dreapta pe una din stațiile mobile și se alege Properties >
Interfaces > Interface0 > MAC Layer
o Se introduc următoarele:
 MAC Protocol: GSM
 GSM Control Channel List: [0 4]
o La Network Layer > Network Protocol se alege GSM Node Type: Mobile
Station
o Se repetă pașii pentru celelalte 6 stații
8. Se configurează aplicațiile:
o Din bara de aplicații, se apasă pe GSM și se creează astfel două apeluri de voce
de la nodul 1 la nodul 3 și, respectiv, de la nodul 5 la nodul 6
o Pentru apelul de la nodul 1 la nodul 3, se configurează (se face clic dreapta pe
GSM și se alege Properties):
 Call Start Time: 18S
 Call Duration: 10S
o Pentru apelul de la nodul 5 la nodul 6, se scrie:
 Call Start Time: 15S
 Call Duration: 12S
9. Se rulează simularea și se notează următorii parametri:
 Network:
o GSM_MS
 Calls Received
 Calls initiated
 Channel Assignments received
 Location Update Request Received
 Traffic Packets Sent
 Traffic Packets Received
o GSM_MSC
 Location Update Request Received
 Traffic Packets Transferred
o GSM_BS
 Traffic Packets (On Air) Received
 Traffic Packets (On Air) Sent
 MAC
o GSM_MS
 Cell Selection
 Cell Selection Failures

40
Simularea Sistemelor de Comunicații Laborator 3

Q1: Comparați numărul de pachete trimise/primite de stațiile mobile cu numărul de pachete


trimise/primite de stațiile de bază, respectiv numărul de pachete transferate de MSC

E2: Se creează un fișier de teren, conform procedurii de la punctul 2. Numărul de clădiri,


precum și înălțimile lor sunt la alegere . Se poziționează u na dintre stațiile de bază deasupra
unei clădiri. Pentru a-i modifica coordonata pe axa z (pe înălțime), se face clic pe nodul
respectiv și se completează valoarea înălțimii dorite în câmpul Z al indicatorilor de poziție. Se
rulează din nou scenariul.

Q2:Se notează diferențele (dacă există) dintre valorile statisticilor generate la scenariul
precedent și cele generate ac um.

E3: Se utilizează utilitarul radio_range și se notează acoperirea radio a unei stații de bază.

41
Laborator 4

Rețele wireless avansate


În acest laborator se vor atinge următoarele obiective:

 Crearea și configurarea unor scenarii în tehnologiile WiMAX și UMTS


 Configurarea protocoalelor de rutare între rețele UMTS și IP

1. Configurarea unui scenariu în tehnologia WiMAX

S1. Se creează un scenariu (Lab4-1) ce conține două subrețele. Subrețeaua 1 conține


nodurile de la 1 la 10, iar subrețeaua 2 nodurile de la 11 la 20. Ambele au protocol MAC de
tip 802.16, iar nodurile 1 și 15 sunt stații de bază ale subrețelei 1, respectiv 2. Cele 2 stații de
bază sunt conectate printr-o legătură de tip punct-la-punct.

Se face clic pe Scenario Properties > Channel Properties și se introduc următorii


parametri:

 Number of Channels: 2
 Pentru fiecare canal se introduc aceiași parametri:
o Channel Frequency: 2.4 GHz
o Pathloss Model: Two-Ray
o Restul parametrilor rămân cei impliciți

Se face clic dreapta pe fiecare din subrețelele fără fir și în Properties > Physical Layer se
introduc:

 Listenable și Listening Channel Mask:


o 10 pentru subrețeaua 1
o 01 pentru subrețeaua 2
 Radio Type: 802.16 Radio
Simularea Sistemelor de Comunicații Laborator 4

 Restul parametrilor impliciți

În MAC Layer se introduc următoarele:

 MAC Protocol: 802.16


 Station Type: Subscriber Station
 Restul parametrilor impliciți

În acest moment, toți parametrii configurați la nivel de subrețea vor fi preluați și de către
nodurile ce aparțin acestora. Însă, nodurile 1 și 15, fiind stații de bază, fac excepție și trebuie
configurate separat.

Se face clic dreapta pe nodul 1, și se alege Properties > Interfaces > Interface# > MAC
Layer, unde # este numărul interfeței care are ca MAC Protocol 802.16. Se pune Station
Type: Base Station și se lasă restul parametrilor impliciți . Se setează înălțimea antenei de
emisie la 10m. Similar se procedează și pentru nodul 15.

E1. Se creează o aplicație CBR între nodul 9 și nodul 14. Se rulează simularea, se
vizualizează rezultatele. Se notează următoarele:

 momentele recepționării primului și ultimului pachet de date;


 întârzierea cap-la-cap
 numărul total de pachete primite și recepționate.

Dacă sunt pierderi de pachete sau o întârziere excesivă a pachetelor, atunci se încearcă
ajustarea în continuare a parametrilor scenariului pentru obținerea unor rezultate cât mai bune
(pe baza a ceea ce s-a studiat deja în laboratoarele trecute).

S2. Se copiază scenariul folosind Save As și se salvează cu numele Lab4-2. Se va adăuga


acum mobilitate nodului client (nodul 9). Pentru aceasta se face clic pe unelta Mobility

(iconița ) din panoul lateral. Apoi se face clic pe nodul pentru care se vrea adăugată
mobilitatea și apoi se face clic pe zona de lucru în punctul unde urmează să se deplaseze
nodul. Va apărea un steguleț (numit și punct de referință sau waypoint) care va reprezenta

43
Simularea Sistemelor de Comunicații Laborator 4

poziția nodului la un moment dat. Se repetă acțiunea până când zona de lucru arată ca mai jos.
Se observă că punctele astfel unite dau traiectoria pe care se va deplasa nodul.

Se face acum clic dreapta pe unul din punctele de referință și se alege Properties ceea ce
va deschide un editor unde se pot modifica proprietățile acestor puncte. Importante sunt
coloanele Simulation Time (momentul simulării la care nodul va fi în punctul respectiv) și
coordonatele punctului. Pe baza acestora, se poate determina viteza pe care o va avea nodul.
Trebuie avut grijă să nu se definească o viteză prea mare, căci va duce la pierderi de pachete.
Tehnologia WiMAX (în teorie) permite recepție bună chiar și în condiții de mobilitate foarte
mare, până la 125 km/h. Pentru simularea de față, se recomandă o viteză maximă de 60-80
km/h.

44
Simularea Sistemelor de Comunicații Laborator 4

Se face clic dreapta pe nodul 1 și se merge la Properties > Interfaces > Interface# > Mac
Layer. Aici se introduc următoarele:

 Enable Mobility Mode: Yes


 Neighbor BS List: {15}.
 Restul parametrilor rămân cei impliciți

Se procedează similar pentru nodul 15, cu deosebirea că stația de bază vecină va fi 1.

Se face click dreapta pe fiecare din subrețelele fără fir și în Properties > MAC Layer se
pune Enable Mobility Mode: Yes, restul parametrilor rămânând cei impliciți.

45
Simularea Sistemelor de Comunicații Laborator 4

Pentru stația mobilă, se schimbă în Properties > Interfaces > Physical Layer >
Listenable și Listening Channel Mask la valoarea 11. Astfel, stația va putea asculta și
canalul vecin și se va putea conecta la stația de bază vecină când puterea semnalului
recepționat de la stația de bază curentă scade sub -78 dBm. (vezi parametrul Handover RSS
Trigger din figura de mai sus), adică va putea efectua un transfer.

E2. Se rulează simularea și se vizualizează rezultatele. Se notează aceiași parametri ca la


E1 și, în plus, de sub MAC->802.16e:

 Number of handovers performed


 Number of Neigbor BS Scanning performed
 Number of MOB-MSHO-REQ messages sent și rcvd
 Number of MOB-BSHO-RSP messages sent și rcvd
 Number of MOB-HO-IND messages sent și rcvd

E3. Se schimbă protocolul de rutare la AODV. Se selectează ambele subrețele și se


modifică Properties > Routing Protocol > General > Routing Protocol for IPv4 la
valoarea AODV. Se păstrează toate celelalte setări implicite.

Atenție! Modificarea protocolului de rutare la nivel de subrețea va asigura și modificarea


protocolului de rutare la nivelul nodurilor ce aparțin acestora, dar mai există legătura punct -la-
punct dintre cele două stații de bază. Se efectuează clic dreapta pe legătură și se urmează
aceiași pași pentru a seta protocolul de rutare.

Se rulează din nou, se verifică și se notează dacă apar îmbunătățiri ale rezultatelor. Dacă nu,
se pot micșora intervalul de expirare a rutei active (Active Route Timeout Interval) și
intervalul de expirare a rutei curente (My Route Timeout Interval). De reținut că ultima
trebuie să fie dublul primeia. Se vor nota aceiași parametri ca la E1.

46
Simularea Sistemelor de Comunicații Laborator 4

2. Configurarea unui scenariu UMTS

S3. Se configurează următorul scenariu (Lab4-3):

1. Se selectează nodurile UMTS din Devices de pe panoul lateral și se plasează 6 noduri


UMTS-UE, 3 noduri UMTS-NodeB, , 2 noduri UMTS-RNC și câte un nod UMTS-
GGSN, UMTS-SGSN, UMTS-HLR.
Notă. Dacă nodurile nu sunt disponibile pe panou, acestea trebuie adăugate. Se face
clic pe Tools > Toolset Editor > Customized Toolbar și se adaugă nodurile mai sus
menționate în bara de unelte Devices.

2. Se plasează o subrețea fără fir pe zona de lucru. Se conectează cele 6 UE și cele 3


NodeB la aceasta.
3. Se conectează 2 din cele 3 NodeB la un RNC, iar cel de-al treilea NodeB se
conectează la celălalt RNC, folosind legături punct-la-punct Cele două RNC-uri se
conectează la SGSN
4. Se creează rețeaua backbone. Se conectează nodul SGSN la GGSN și HLR. HLR se
conectează la GGSN.

47
Simularea Sistemelor de Comunicații Laborator 4

5. Se verifică dacă Cellular Layer3->UMTS Layer 3 e specificat la Network Protocol


pentru toate nodurile.
6. Se creează două canale radio cu parametri impliciți.
7. Se configurează Listenable Channel Mask. Parametrul va permite UE-urilor să
asculte canalul descendent (downlink) și NodeB-urilor să asculte canalul ascendent
(uplink) al ariei de control SGSN căreia îi aparțin. Cum, de obicei, sunt mai multe UE -
uri decât NodeB-uri într-un scenariu, poate fi mai comod să se configureze măștile
pentru UE-uri prin configurarea la nivel de subrețea, urmând a se configura masca
pentru fiecare NodeB individual la nivel de interfață.
Așadar, pentru subrețeaua fără fir din scenariu (cea la care sunt conectate UE -urile) se
pune Listenable Channel Mask 10, iar pentru fiecare NodeB se pune Listenable
Channel Mask 01 (pe interfața corespunzătoare legăturii UMTS). Se procedează
similar și pentru Listening Channel Mask.
8. Se configurează pentru subrețea următoarele
 MAC Protocol: Cellular MAC
 Cellular MAC Protocol: UMTS Layer 2
 Radio Type: Cellular PHY
 Cellular PHY Model: UMTS PHY Model
9. Pentru NodeB-uri (nodurile 7,8 și 9) se configurează Downlink Channel 0 și Uplink
Channel 1 la Node Configuration->Network Layer

48
Simularea Sistemelor de Comunicații Laborator 4

10. Pentru SGSN și GGSN se configurează My Home Location Register Server 14 și ,


doar pentru SGSN, My Primary GGSN Node 13. Tot sub Node Configuration-
>Network Layer

11. Se configurează protocolul de rutare pentru SGSN, GGSN și HLR Bellman -Ford
(Node Configuration->Routing Protocol).
12. Se creează o rețea IP. Pentru aceasta se plasează 3 noduri Default pe zona de lucru. Se
conectează un nod (nodul 15) la celelalte 2 (nodurile 16 și 17) și la GGSN prin
legături punct-la-punct.

49
Simularea Sistemelor de Comunicații Laborator 4

13. Se configurează gateway-ul implicit pentru nodurile 15, 16, 17 să fie GGSN-ul. Se
merge la Properties > Node Configuration > Routing Protocol. Se pune Configure
Default Gateway:Yes și Default Gateway: 13.
14. Se configurează protocolul de rutare pentru nodurile IP să fie RIP. Se verifică faptul că
pe interfața GGSN către rețeaua IP, valoarea Network Layer este IPv4, iar protocolul
de rutare este tot RIP. Legătura punct-la-punct dintre GGSN și nodul 15 trebuie să fie
de tip IPv4 nu Cellular Layer3.

15. Se configurează gateway-ul implicit pentru SGSN nodul 15.


16. Se configurează o aplicație CBR între unul din nodurile UE (nodul 4, de exemplu) și
un nod din rețeaua IP (nodul 16, de exemplu). Se configurează următorii parametri:
 Items to Send: 1000
 Item Size: 256
 Interval: 32 ms
 Precedence: 4
50
Simularea Sistemelor de Comunicații Laborator 4

Parametrul Precedence specifică din ce clasă QoS face parte aplicația (vezi Anexa
2). O valoare de 4 înseamnă clasa Streaming.

E4. Se salvează scenariul și se rulează, notându-se rezultatele ca la E1.

Q1. Verificați dacă apar pierderi de pachete și dacă pot fi îmbunătățite performanțele (vezi și
Anexele 1 și 2)

51
Simularea Sistemelor de Comunicații Laborator 4

Anexe

1. Rutarea între rețele UMTS și IP

Rutarea în scenariile UMTS comportă două aspecte:

 Este necesar un protocol de rutare în rețeaua core UMTS pentru a permite rutarea
pachetelor între SGSN-uri, GGSN-uri și HLR-uri care ar putea fi la mai multe noduri
distanță unul de altul.
 Rețelele IP au propria lor arhitectură IP. Pentru a ruta pachetele între PLMN și IP, sunt
necesare mai ales informații despre nodurile de la marginile celor două rețele. Acestea
sunt descrise mai jos.

Configurările nodurilor marginale:

Acestea trebuie configurate pentru a permite următoarele:

 Rutarea de la rețeaua UMTS către IP. Nodul GGSN trebuie să ruteze pachetele
către gateway-ul IP corespunzător.
 Rutarea de la rețelele IP către UMTS. Următoarele considerații se aplică:
o Ruterele IP de obicei nu știu adresa IP individuală atribuită nodului UE.
Totuși, trebuie să știe cum să ajungă la rețeaua UMTS luată ca un întreg.
o Segmentele de adrese IP alocate unui PLMN sunt de obicei configurate static.
o Informațiile globale de rutare pentr u segmentele de adrese IP ale fiecărei
PLMN trebuie făcute cunoscute rețelelor IP.

1.1. Tehnci pentru rutarea inter-domeniu


1.1.1. Rutarea folosind BGP

Protocolul BGP (Border Gateway Protocol) poate fi folosit pentru a conecta domeniile de
rutare ale rețelelor UMTS și IP între ele. Următorii pași trebuie urmați pentru a configura
rutarea BGP:

1. Se tratează domeniul de rutare PLMN ca un sistem autonom


2. Se creează sisteme autonome în rețeaua IP
3. Se configurează BGP pentru a anunța informațiile globale de rutare ale PLMN
rețelelor IP
4. Se configurează BGP pentru a face cunoscute informațiile globale de rutare ale
rețelelor IP nodului GGSN al rețelei UMTS

A se vedea documentația Multimedia and Enterprise Model Library

1.1.2. Rutarea prin includerea GGSN în rețeaua IP

52
Simularea Sistemelor de Comunicații Laborator 4

În această configurație, GGSN -ul din rețeaua UMTS este inclus în domeniul de rutare al
rețelei IP. Nodul GGSN e configurat ca gateway implicit al rețelei IP. Acesta învață rutele
către nodurile IP prin intermediul protocolului dinamic de rutare configurat pentru rețeaua IP.

Metoda funcționează în cazul rutării pachetelor dinspre PLMN către rețeaua IP. Totuși
pachetele nu pot fi rutate dinspre rețeaua IP către PLMN deoarece nodurile IP nu știu că
pachetele trebuie rutate prin GGSN. În acest caz, rute statice sau implicite trebuie folosite.

1.1.3. Folosirea rutelor statice sau gateway-urilor implicite

Rutele statice pot fi configurate pentru a informa nodurile IP să ruteze pachetele către nodul
GGSN al unei rețele UMTS. Totuși, dacă topologia rețelei se schimbă, rutele statice nu mai
sunt corecte.

Alternativ, nodul GGSN poate fi configurat ca gateway implicit pentru nodurile IP

 Dacă nodurile IP nu au informații de rutare pentru adresa de destinație, rutează


pachetele către gateway-ul implicit.
 Gateway-ul implicit poate fi la mai multe noduri distanță
 Nodul GGSN poate fi configurat ca gateway implicit pentru noduri IP

Notă. Din moment ce un singur gateway implicit poate fi configurat pentru fiecare nod IP,
această abordare funcționează doar dacă o singură rețea UMTS este conectată la re țeaua IP.

2. Configurarea aplicațiilor în scenarii UMTS

Aplicațiile de tip servicii cu comutație de pachete (packet service) din rețele UMTS pot fi
simulate prin modele de generare de trafic ale EXata. Modelele CBR și VBR pot fi folosite
pentru a simula fluxuri coversaționale și de streaming în rețele UMTS .

Apelurile de voce (servicii cu comutație de circuite) pot fi simulate prin aplicația Phone Call.

În EXata, modelele de generare de trafic, cum ar fi CBR, VBR, suportă configurarea claselor
QoS prin trei parametri QoS: PRECEDENCE, TOS și DSCP. În rețelele UMTS, doar
parametrul PRECEDENCE este suportat.

Tabelul următor arată corespondența dintre parametrul PRECEDENCE și clase QoS și


priorități.
Tabel 1 Clase QoS și priorități pentru UM TS

PRECEDENCE Clase QoS UMTS și priorități

6-7 Conversațional

4-5 Streaming

3 Interactiv, prioritate = 1

53
Simularea Sistemelor de Comunicații Laborator 4

2 Interactiv, prioritate = 2

1 Interactiv, prioritate = 3

0 Fundal

Pentru rețelele UMTS, fiecare rate level impune limite asupra ratei de date maxime și
dimensiunii maxime a pachetului. Aplicația CBR/VBR ar trebui configurată astfel încât
dimensiunile pachetelor și rata de date se încadrează în aceste limite. Tabelele următoare dau
limitele impuse pentru tipurile de trafic conversațional și streaming.
Tabel 2 Limitele pentru rata de date și dimensiunea pachetului de date pentru trafic conversațional

Rate level Rata de date maximă (bps) Dimensiunea maximă a


pachetului (octeți)

1 (TTI 40 ms) 28800 112

2 (TTI 20 ms) 32000 48

3 (TTI 20 ms) 64000 128

4 (TTI 20 ms) 128000 288

Tabel 3 Limitele pentru rata de date și dimensiunea pachetului de date pentru trafic de tip streaming

Rate level Rata de date maximă (bps) Dimensiunea maximă a


pachetului (octeți)

1 (TTI 40 ms) 14400 40

2 (TTI 40 ms) 28800 112

3 (TTI 40 ms) 57600 256

4 (TTI 40 ms) 115200 544

3. Configurarea aplicațiilor în scenariile WiMAX

O proprietate importantă a tehnologiei WiMAX este suportul său QoS. Totuși, în EXata, doar
aplicațiile de generare de trafic CBR/VBR au fost modificate astfel încât să dea parametri
QoS corecți. Tabelul următor dă corespondența dintre valorile câmpului PRECEDENCE și
clasele de servicii.

54
Simularea Sistemelor de Comunicații Laborator 4

Tabel 4 Tipuri de servicii pentru WiMAX

Servicii Precedence

Unsolicited Grant Service 7, 5

Extended Real-time Polling Service 4

Real-time Polling Service 3

Non-real-time Polling Service 6, 2, 1

Best Effort 0

Notă: Valorile 6, 2, 1 corespund toate tipului nrtPS. Acest lucru permite alocarea diferitelor
priorități fluxurilor nrtPS. Totuși, în implementarea din EXata, planificarea nu permite
priorități multiple în cadrul unui tip de serviciu. Planificarea folosește WFQ și ponderile
folosite se bazează pe cerințele de bandă ale fluxurilor.

Notă: În EXata, rutarea traficului folosește PRECEDENCE 6, ceea ce e clasificat ca flux


nrtPS. De asemenea, nivelul rețea poate afecta QoS dacă are mai puțin de 8 cozi, din moment
ce introduce pachete de tipuri diferite de servicii într-o singură coadă. Valoarea numărului de
cozi IP ar trebui să fie mai mare sau egală cu 8, altfel, aplicația setează un câmp
PRECEDENCE de valoare mare pentru pachetele sale și pot fi blocate în cozi de pachete cu
valoare PRECEDENCE mai mică. Astfel, pentru a garanta tipurile de servicii, trebuie
configurate 8 cozi la nivelul rețea.

55
Laborator 5

Modificarea codului sursă al EXata


Unul din avantajele simulatorului EXata este posibilitatea utilizatorului de a crea,
configura și rula propriile modele de protocoale și rețele. EXata este scris integral în C/C++ și
poate fi compilat, sub Windows, folosind mediul de dezvoltare C/C++Visual Studio 2008. O
listă cu alte medii C/C++ în care se poate compila EXata se poate găsi în EXata-2.2-
Programmer’s Guide din documentație. (Alternativ, și nespecificat în Programmer’s Guide,
se poate folosi și mediul Eclipse IDE. Avantajul său este că e un software cross-platform).

1. Compilarea EXata folosind Visual Studio 2008

1.1. Configurarea VS 2008


Înainte de a putea compila EXata, VS2008 trebuie configurat o singură dată. Se urmează
pa de mai jos:
șii

1. Folosind un editor de text, se creează un fișier numit Makefile în directorul


EXATA_HOME. Acest fișier va conține comenzi pentru redirecționarea către un fișier
makefile din EXATA_HOME/main (fișierul corespunzător mediului de dezvoltare
C/C++ folosit). Fișierul Makefile va conține următoarele linii:

all:
cd main
nmake -f Makefile-windows-vc9

rebuild: clean
nmake -f Makefile-windows-vc9

clean:
cd main
nmake -f Makefile-windows-vc9 clean
2. Se deschide Microsoft Visual Studio 2008 făcând clic pe iconița de pe Desktop

3. Se face clic pe File > New > Project From Existing Code și se introduc următoarele:
 Project file location: C:\snt\exata\2.2
 Project name: exata
 Folder: C:\snt\exata\2.2
Simularea Sistemelor de Comunicații Laborator 5

4. Se apasă Next și, în fereastra următoare se bifează How do you want to build the
project?: Use external build system și se apasă din nou Next
5. Se introdc următoarele configurări pentru depanare:
 Build command line: nmake
 Rebuild command line: nmake rebuild
 Clean command line: nmake clean
 Output (for debugging): bin\exata.exe

6. Se apasă Finish

57
Simularea Sistemelor de Comunicații Laborator 5

Se va crea astfel proiectul qualnet și va fi încărcat în fereastra Solution Explorer din


dreapta ecranului:

Folosind Solution Explorer, se poate naviga prin structura directoarelor proiectului și


deschide fișierele componente pentru a fi editate în mediul de dezvoltare Visual Studio 2008.
În figura de mai sus se observă directorul ce conține fișierele sursă pentru modulul de
WiMAX (802.16). Efectuarea unui dublu clic pe acesta va duce la deschiderea sa în editorul
Visual Studio.
Se poate comuta pe modul Class View care oferă o privire detaliată asupra tuturor
variabilelor, funcțiilor și claselor existente în cadrul proiectului. Având în vedere faptul c ă
simulatorul EXata are un grad ridicat de complexitate cu module implementate prin
intermediul mai multor fișiere grupate în directoare, este comod a se folosi Class View pentru
a găsi și vizualiza o clasă sau structură, componentele ei sau o funcție.

În figura de mai sus, se observă o structură (agent_adv_timer_info), împreună cu


componentele sale. Se poate folosi butonul Search pentru a găsi o anumită
structură/clasă/funcție. Dacă se face clic pe aceasta, vor apărea în fereastra de previzualizare

58
Simularea Sistemelor de Comunicații Laborator 5

de dedesubt membrii acelei structuri, iar dacă se dă dublu clic, se va deschide fi șierul ce
conține definiția structurii respective, cursorul fiind plasat la linia definiției.

1.2. Compilarea folosind mediul vizual VS 2008


Odată ce a fost configurat Visual Studio 2008, poate fi folosit în felul următor:
 Se apasă pe Build > Build Solution pentru a compila EXata
 Se apasă pe Build > Rebuild Solution pentru a recompila EXata
 Se apasă pe Build > Clean Solution pentru a șterge fișierele obiect (cu extensia
.obj)

2. Modificarea codului sursă a modelului de WiMAX pentru a permite transferul pe


baza raportului semnal-zgomot-plus-interferență
În modelul de WiMAX din EXata, declanșatorul ( triggerul) implicit al transferului
(handover) este nivelul puterii semnalului recepționat (RSSI). Totuși, modelul permite
transferul pe baza a trei parametri:
 Puterea semnalului recepționat (RSS – Received Signal Strength)
 Raportul semnal-zgomot-plus-interferență (CINR – Carrier to Interference plus Noise
Ratio)
 Întârzierea dus-întors a pachetelor (RTD – Round Trip Delay)

Versiunea 2.2 a EXata dă posibilitatea efectuării transferului folosind aceste trei metrici, însă
codul sursă al EXata conține doar implementarea transferului folosind RSS ca metrică.
Laboratorul acesta propune modificarea codului sursă al EXata pentru a implementa luarea
deciziei de transfer pe baza celei de a doua metrici, CINR. Acest lucru presupune următorii
pași:

 Identificarea fișierelor și funcțiilor ce trebuie modificate


 Scrierea codului corespunzător țelului propus având ca model codul deja existent
pentru transferul pe baza RSS
 Compilarea EXata
 Depanarea, în cazul apariției erorilor de compilare și/sau linkare
 Modificarea interfeței grafice a EXata pentru a permite alegerea celor 2 metrici de
transfer

Codul sursă ce implementează modulul de WiMAX în EXata este plasat în directorul


EXATA_HOME/libraries/advanced_wireless, iar fișierele ce țin strict de partea de mobilitate
și care vor fi modificate sunt următoarele:
 mac_dot16e.h – conține definițiile unor parametri impliciți ai transferului, cum ar fi
nivelul RSS implicit la care se face transferul sau metrica de transfer ceva fi folosită
(RSSI, CINR sau RTD)
 mac_dot16_ss.h și mac_dot16_ss.cpp – implementează decizia de transfer inițiat de
stația mobilă în funcția MacDot16SsUpdateBsMeasurement (...).

59
Simularea Sistemelor de Comunicații Laborator 5

 mac_dot16_bs și mac_dot16_bs.cpp – implementează decizia de transfer inițiat de


rețea în funcția MacDot16BsCheckHandover (...).
Înainte de a modifica fișierele codului sursă al EXata, se efectuează o copie de siguranță a
acestora. Poate fi plasată într-un director în EXATA_HOME.

E1. Se editează fișierul mac_dot16e.h și, la linia 64, între definiția parametrului
DOT16e_DEFAULT_HO_RSS_MARGIN și cea a DOT16e_TRIGEGER_METRIC_TYPE_CINR(sic!), se
adaugă următoarele definiții:

// /**
// CONSTANT :: DOT16e_DEFAULT_NBR_SCAN_CINR_TRIGGER : 16.0
// DESCRIPTION :: CINR value to trigger neighbor BS scan
// **/
#define DOT16e_DEFAULT_NBR_SCAN_CINR_TRIGGER (16.0)

// /**
// CONSTANT :: DOT16e_DEFAULT_HO_CINR_TRIGGER : 12.0
// DESCRIPTION :: CINR value to trigger handover decision
// **/
#define DOT16e_DEFAULT_HO_CINR_TRIGGER (12.0)

// /**
// CONSTANT :: DOT16e_DEFAULT_HO_CINR_MARGIN : 2.0
// DESCRIPTION :: Margin in CINR value for choosing the new BS
// **/
#define DOT16e_DEFAULT_HO_CINR_MARGIN 2.0

Indicație: Pentru a sări la o anumită linie, se apasă Ctrl+G și se intorduce numărul liniei.

Parametrii de mai sus sunt similari celor legați de RSS și dau valorile implicite ale CINR
care declanșează scanarea stațiilor de bază vecine și decizia de transfer. Al treilea parametru
dă marginea de RSS. La alegerea stației de bază vecine către care să se efectueze transferul,
stația mobilă va considera doar acele stații de bază ale căror ale căror niveluri RSS sunt mai
mari decât nivelul RSS al stației curente cu cel puțin valoarea marginii de RSS. Acest lucru
elimină transferurile frecvente. Valorile implicite au fost alese experimental, pe baza
simulărilor repetate.

E2. Se editează fișierul header mac_dot16_bs.h. La linia 529 se adaugă următorii 2


parametri (scriși îngroșat) în structura MacDot16BsPara:

double hoRssTrigger; // RSS level to trigger handover


double hoRssMargin; // Margin of RSS level to init Bs HO
double hoCinrTrigger; // CINR value to trigger handover
double hoCinrMargin; //Margin of CINR to init Bs HO

//dot16e

60
Simularea Sistemelor de Comunicații Laborator 5

Parametrii reprezintă valoarea CINR care va declanșa decizia de transfer și marginea cu


care trebuie să fie mai mare raportul CINR al stației vecine decât cel al stației curente.

E3. Se deschide fișierul mac_dot16_bs.cpp. La linia 619 se adaugă următoarele (scrise


îngroșat):

........................
// dot16e
dot16Bs->para.resrcRetainTimeout =
DOT16e_HO_SYTEM_RESOURCE_RETAIN_TIME;

IO_ReadString(
node,
node->nodeId,
interfaceIndex,
nodeInput,
"MAC-802.16e-HANDOVER-TRIGGER-TYPE",
&wasFound,
stringVal);

if(wasFound)
{
if (strcmp(stringVal, "RSSI") == 0)
{
dot16Bs->trigger.triggerType =
DOT16e_TRIGEGER_METRIC_TYPE_RSSI;

IO_ReadDouble(
node,
node->nodeId,
interfaceIndex,
nodeInput,
"MAC-802.16e-HANDOVER-RSS-TRIGGER",
&wasFound,
&doubleVal);

if (wasFound)
{
dot16Bs->para.hoRssTrigger = doubleVal;
}
else
{
dot16Bs->para.hoRssTrigger =
DOT16e_DEFAULT_HO_RSS_TRIGGER;
}

IO_ReadDouble(
node,
node->nodeId,
interfaceIndex,
nodeInput,
"MAC-802.16e-HANDOVER-RSS-MARGIN",
&wasFound,
&doubleVal);

if (wasFound)
{
dot16Bs->para.hoRssMargin = doubleVal;

61
Simularea Sistemelor de Comunicații Laborator 5

}
else
{
dot16Bs->para.hoRssMargin =
DOT16e_DEFAULT_HO_RSS_MARGIN;
}
}
else if (strcmp(stringVal, "CINR") == 0)
{
dot16Bs->trigger.triggerType =
DOT16e_TRIGEGER_METRIC_TYPE_CINR;

IO_ReadDouble(
node,
node->nodeId,
interfaceIndex,
nodeInput,
"MAC-802.16e-HANDOVER-CINR-
TRIGGER",
&wasFound,
&doubleVal);

if (wasFound)
{

dot16Bs->para.hoCinrTrigger = doubleVal;
}
else
{
dot16Bs->para.hoCinrTrigger =
DOT16e_DEFAULT_HO_CINR_TRIGGER;
}

IO_ReadDouble(
node,
node->nodeId,
interfaceIndex,
nodeInput,
"MAC-802.16e-HANDOVER-CINR-MARGIN",
&wasFound,
&doubleVal);

if (wasFound)
{
dot16Bs->para.hoCinrMargin = doubleVal;
}
else
{
dot16Bs->para.hoCinrMargin =
DOT16e_DEFAULT_HO_CINR_MARGIN;
}

}
}

// Admission control unit algorithm name


dot16Bs->acuAlgorithm = DOT16_ACU_NONE;
.................

62
Simularea Sistemelor de Comunicații Laborator 5

Codul de mai sus citește din fișierul de configurare mai întâi care va fi metrica de transfer
(MAC-802.16e-HANDOVER-TRIGGER-TYPE) și apoi citește valorile parametrilor necesari pentru
CINR (valoarea la care se ia decizia de transfer și marginea). Aceștia sunt stocați în
variabilele care au fost create în prealabil în structura MacDot16BsPara din fișierul header
(hoCinrMargin și hoCinrTrigger).

La linia 15785 se adaugă următorul cod (cel scris îngroșat):

....................
// start dot16e realted init
if (dot16->dot16eEnabled)
{
dot16Bs->configChangeCount = 0;
dot16Bs->lastNbrAdvSent = 0;
//dot16Bs->trigger.triggerType = DOT16e_TRIGEGER_METRIC_TYPE_RSSI;
dot16Bs->trigger.triggerFunc =
DOT16e_TRIGEGER_METRIC_FUNC_SERV_LESS_ABSO;
dot16Bs->trigger.triggerAction = DOT16e_TRIGGER_ACTION_MOB_SCN_REQ;
if (dot16Bs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_RSSI)
{
dot16Bs->trigger.triggerValue =
(signed char) DOT16e_DEFAULT_NBR_SCAN_RSS_TRIGGER;
}
else if (dot16Bs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_CINR)
{
dot16Bs->trigger.triggerValue =
(signed char)
DOT16e_DEFAULT_NBR_SCAN_CINR_TRIGGER;
}
dot16Bs->trigger.triggerAvgDuration =
(unsigned char) DOT16e_DEFAULT_TRIGGER_AVG_DURATION;
.......................

Codul de mai sus inițializează, în funcție de metrica de transfer aleasă, variabila


triggerValue din structura trigger cu valoarea sub care trebuie să scadă RSS sau CINR al
stației curente pentru a se începe scanarea stațiilor de bază vecine.

Decizia de transfer inițiat de stația de bază este implementată în funcția


MacDot16BsCheckHandover(...). Aceasta trebuie modificată pentru a ține cont și de CINR ca
metrică de transfer.

La linia 14624 se modifică astfel codul:

static
void MacDot16BsCheckHandover(Node* node,
MacDataDot16* dot16,
MacDot16BsSsInfo* ssInfo)
{
MacDot16Bs* dot16Bs = (MacDot16Bs*) dot16->bsData;
Message* pduMsg;

63
Simularea Sistemelor de Comunicații Laborator 5

// if ul link quality is bad or


// system wise, for load balance
// it is time to ask SS handover

if (!ssInfo->inHandover &&
dot16Bs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_RSSI &&
!ssInfo->bsInitHoStart &&
ssInfo->ulRssMean < dot16Bs->para.hoRssTrigger)
{
int i;
double maxBsRssi;
........
if (found &&
(maxBsRssi - ssInfo->ulRssMean > dot16Bs->para.hoRssMargin))
{
.........
}
}
else if (!ssInfo->inHandover &&
dot16Bs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_CINR &&
!ssInfo->bsInitHoStart &&
ssInfo->ulCinrMean < dot16Bs->para.hoCinrTrigger)
{
int i;
double maxBsCinr;
int maxIndex;
BOOL found = FALSE;

// ATTEN: need further revisit


// assume UL and DL are symmetric?
maxBsCinr = ssInfo->ulCinrMean;
for (i = 0; i < DOT16e_DEFAULT_MAX_NBR_BS; i++)
{
if (ssInfo->nbrBsSignalMeas[i].bsValid &&
((ssInfo->nbrBsSignalMeas[i].dlMeanMeas.measTime +
2 * DOT16_SS_DEFAULT_NBR_SCAN_MIN_GAP) <
getSimTime(node)) &&
ssInfo->nbrBsSignalMeas[i].dlMeanMeas.cinr >
maxBsCinr)
{
found = TRUE;
maxBsCinr = ssInfo-
>nbrBsSignalMeas[i].dlMeanMeas.cinr;
maxIndex = i;
}
}

if (found &&
(maxBsCinr - ssInfo->ulCinrMean > dot16Bs-
>para.hoCinrMargin))
{

pduMsg = MacDot16eBsBuildMobBshoReqPdu(
node,
dot16,
ssInfo,
ssInfo->nbrBsSignalMeas[i].bsId);

MacDot16BsScheduleMgmtMsgToSs(node,
dot16,

64
Simularea Sistemelor de Comunicații Laborator 5

ssInfo,
ssInfo-
>basicCid,
pduMsg);

ssInfo->bsInitHoStart = TRUE;
ssInfo->lastBsHoReqSent = getSimTime(node);

// update stat
dot16Bs->stats.numBsHoReqSent ++;

if (DEBUG_HO)
{
MacDot16PrintRunTimeInfo(node, dot16);
printf("BS inits a handover for SS w/ basicCid %d
to"
"bs %d:%d:%d:%d:%d:%d\n",
ssInfo->basicCid,
ssInfo->nbrBsSignalMeas[i].bsId[0],
ssInfo->nbrBsSignalMeas[i].bsId[1],
ssInfo->nbrBsSignalMeas[i].bsId[2],
ssInfo->nbrBsSignalMeas[i].bsId[3],
ssInfo->nbrBsSignalMeas[i].bsId[4],
ssInfo->nbrBsSignalMeas[i].bsId[5]);
}
}
}
}

Codul de mai sus tratează transferul inițiat de stația de bază și respectă întru totul
algoritmul pentru metrica RSS de transfer, fiind adaptat pentru CINR. Conform codului de
mai sus, transferul inițiat de stația de bază are loc astfel:
 Mai întâi începe scanarea stațiilor de bază vecine. Scanarea începe dacă:
o Stația mobilă nu a început ea însăși procedura de transfer (condiția !ssInfo-
>inHandover din if)
o Stația de bază nu a început deja procedura de transfer (condiția !ssInfo-
>bsInitHoStart)
o Valoarea RSS sau CINR de la stația mobilă a scăzut sub pragul de transfer
(condiția ssInfo->ulRssMean < dot16Bs->para.hoRssTrigger sau
ssInfo->ulCinrMean < dot16Bs->para.hoCinrTrigger în funcție de
valoarea dot16Bs->trigger.triggerType).
 Se caută apoi stația de bază care are valoarea RSS sa u CINR de la stația mobilă mai
mare decât cel al stației de bază curente. Dacă acesta este mai mare cu marginea RSS
sau CINR atunci se poate iniția transferul către stația de bază aleasă, prin trimiterea
mesajului MOB-BSHO-REQ.

E4. Urmează tratarea transferului inițiat de stația mobilă. Pentru aceasta, mai întâi se va
edita structura MacDot16SsPara din fișierul mac_dot16_ss.h de la linia 475 pentru a conține
variabile legate de metrica CINR de transfer:

...............
clocktype nbrMeaLifetime; // timeout for signal quality measure of a BS

65
Simularea Sistemelor de Comunicații Laborator 5

double nbrScanRssTrigger; // RSS level to trigger neighbor scan


double hoRssTrigger; // RSS level to trigger handover
double hoRssMargin; // Margin of RSS level to select new BS
double nbrScanCinrTrigger; //CINR to trigger neighbor scan
double hoCinrTrigger; //CINR to trigger handover
double hoCinrMargin; //Margin of CINR to select new BS
// end of 802.16e parameters
} MacDot16SsPara;
---------------------------------------------------------------------------
E5. Se editează fișierul mac_dot16_ss.cpp pentru a citi metrica de transfer și a inițializa
variabilele corespunzătoare cu valorile configurate în scenariu (similar ca la stația de bază) la
linia 415:

.....................
dot16Ss->para.t42Interval = DOT16e_SS_DEFAULT_T42_INTERVAL;
dot16Ss->para.t44Interval = DOT16e_SS_DEFAULT_T44_INTERVAL;

IO_ReadString(
node,
node->nodeId,
interfaceIndex,
nodeInput,
"MAC-802.16e-HANDOVER-TRIGGER-TYPE",
&wasFound,
stringVal);

if(wasFound)
{
if (strcmp(stringVal, "RSSI") == 0)
{

IO_ReadDouble(
node,
node->nodeId,
interfaceIndex,
nodeInput,
"MAC-802.16e-NEIGHBOR-SCAN-RSS-TRIGGER",
&wasFound,
&doubleVal);

if (wasFound)
{
...............
}

IO_ReadDouble(
node,
node->nodeId,
interfaceIndex,
nodeInput,
"MAC-802.16e-HANDOVER-RSS-TRIGGER",
&wasFound,
&doubleVal);

if (wasFound)
{
........
}

66
Simularea Sistemelor de Comunicații Laborator 5

IO_ReadDouble(
node,
node->nodeId,
interfaceIndex,
nodeInput,
"MAC-802.16e-HANDOVER-RSS-MARGIN",
&wasFound,
&doubleVal);

if (wasFound)
{
...........
}
}
else if (strcmp(stringVal, "CINR") == 0)
{
IO_ReadDouble(
node,
node->nodeId,
interfaceIndex,
nodeInput,
"MAC-802.16e-NEIGHBOR-SCAN-CINR-TRIGGER",
&wasFound,
&doubleVal);

if (wasFound)
{
dot16Ss->para.nbrScanCinrTrigger = doubleVal;
}
else
{
dot16Ss->para.nbrScanCinrTrigger =
DOT16e_DEFAULT_NBR_SCAN_CINR_TRIGGER;
}

IO_ReadDouble(
node,
node->nodeId,
interfaceIndex,
nodeInput,
"MAC-802.16e-HANDOVER-CINR-
TRIGGER",
&wasFound,
&doubleVal);

if (wasFound)
{
dot16Ss->para.hoCinrTrigger = doubleVal;
}
else
{
dot16Ss->para.hoCinrTrigger =
DOT16e_DEFAULT_HO_CINR_TRIGGER;
}

IO_ReadDouble(
node,
node->nodeId,
interfaceIndex,
nodeInput,

67
Simularea Sistemelor de Comunicații Laborator 5

"MAC-802.16e-HANDOVER-CINR-MARGIN",
&wasFound,
&doubleVal);

if (wasFound)
{
dot16Ss->para.hoCinrMargin = doubleVal;
}
else
{
dot16Ss->para.hoCinrMargin =
DOT16e_DEFAULT_HO_CINR_MARGIN;
}

}
}

dot16Ss->isCRCEnabled = DOT16_CRC_STATUS;
dot16Ss->isFragEnabled = DOT16_FRAGMENTATION_STATUS;
......................
---------------------------------------------------------------------------
Acum, decizia de transfer se ia în funcția MacDot16SsUpdateBsMeasurement. Tot ce
trebuie făcut este să se modifice codul de la linia 14620 pentru a ține cont și de CINR ca
metrică de transfer

static
void MacDot16SsUpdateBsMeasurement(Node* node,
MacDataDot16* dot16,
PhySignalMeasurement* signalMea)
{
MacDot16Ss* dot16Ss = (MacDot16Ss*) dot16->ssData;
MacDot16SignalMeasurementInfo meanMeas;

........
if (dot16->dot16eEnabled &&
dot16Ss->nbrScanStatus == DOT16e_SS_NBR_SCAN_InScan &&
dot16Ss->operational)
{
// update signal measurement of neighbor BS
if (dot16Ss->targetBs != NULL)
{
// update the measurement histroy and return the mean
...........

if (
(dot16Ss->servingBs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_RSSI &&
dot16Ss->targetBs->rssMean > dot16Ss->servingBs->rssMean &&
dot16Ss->servingBs->rssMean <
IN_DB(PhyDot16GetRxSensitivity_mW(
node,
dot16->myMacData->phyNumber,
moduCodeType)))
|| (dot16Ss->servingBs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_CINR
&& dot16Ss->targetBs->cinrMean > dot16Ss->servingBs-
>cinrMean
&& dot16Ss->servingBs->cinrMean < 5.0))
{

68
Simularea Sistemelor de Comunicații Laborator 5

...................
}
}
}
else
{
if (dot16Ss->initInfo.dlSynchronized)
{
...................
// only when SS has already finish the intitialization with
// serving BS could it start the scan and handover procedure
if (dot16->dot16eEnabled && dot16Ss->operational &&
dot16->numChannels > 1)
{
// check if need to trigger handover
if (dot16Ss->nbrScanStatus == DOT16e_SS_NBR_SCAN_None &&
dot16Ss->hoStatus == DOT16e_SS_HO_None)
{
if ((dot16Ss->servingBs->rssMean <
dot16Ss->para.hoRssTrigger
&& dot16Ss->servingBs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_RSSI)
|| (dot16Ss->servingBs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_CINR
&& dot16Ss->servingBs->cinrMean < dot16Ss-
>para.hoCinrTrigger
))
{
// need to init handover
if (dot16Ss->nbrBsList != NULL)
{
// select a nbr BS to perform handover
MacDot16SsBsInfo* targetBs;
targetBs = MacDot16eSsSelectBestNbrBs(node, dot16);
if ((targetBs != NULL &&
(targetBs->rssMean - dot16Ss->servingBs-
>rssMean)
>= dot16Ss->para.hoRssMargin
&& dot16Ss->servingBs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_RSSI)
|| (targetBs != NULL &&
dot16Ss->servingBs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_CINR &&
(targetBs->cinrMean - dot16Ss->servingBs-
>cinrMean)
>= dot16Ss->para.hoCinrMargin
))
{
// find a suitable nbr BS, do handover
..............
dot16Ss->targetBs = targetBs;
Message* msHoReq;
msHoReq = MacDot16eSsBuildMobMshoReqMsg(node,
dot16);
MacDot16SsEnqueueMgmtMsg(node,
dot16,
DOT16_CID_BASIC,
msHoReq);

dot16Ss->hoStatus = DOT16e_SS_HO_LOCAL_Begin;
dot16Ss->hoNumRetry = DOT16e_MAX_HoReqRetry;

69
Simularea Sistemelor de Comunicații Laborator 5

// set timer and the retry counter when


// check outgoing
}
else if ((targetBs != NULL &&
(targetBs->rssMean >
dot16Ss->servingBs->rssMean)
&& dot16Ss->servingBs->rssMean <
IN_DB(PhyDot16GetRxSensitivity_mW(
node,
dot16->myMacData->phyNumber,
moduCodeType))
&& dot16Ss->servingBs-
>trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_RSSI)
|| (dot16Ss->servingBs-
>trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_CINR
&& targetBs != NULL &&
(targetBs->cinrMean >
dot16Ss->servingBs->cinrMean) &&
dot16Ss->servingBs->cinrMean < 5.0
))
{
// if the serving BS signal is too weak and
// target BS has stronger signal, handover to
// target BS though the difference is not over
// the handover margin to avoid call dropping
............
dot16Ss->targetBs = targetBs;
Message* msHoReq;
msHoReq = MacDot16eSsBuildMobMshoReqMsg(node,
dot16);
MacDot16SsEnqueueMgmtMsg(node,
dot16,
DOT16_CID_BASIC,
msHoReq);
dot16Ss->hoStatus = DOT16e_SS_HO_LOCAL_Begin;
dot16Ss->hoNumRetry = DOT16e_MAX_HoReqRetry;
// set timer and the retry counter when check
// outgoing
}
}
else
{
// no nbr BS in the list, restart
}
}
}

// if not in HO or neighbor scan mode, and if RSS is below


// the trigger, needs to start neighbor BS scan
if (dot16Ss->hoStatus == DOT16e_SS_HO_None &&
dot16Ss->nbrScanStatus == DOT16e_SS_NBR_SCAN_None &&
(dot16Ss->servingBs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_CINR ||
dot16Ss->servingBs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_RSSI)
)
{

// for RSSI or CINR case


if (dot16Ss->servingBs->trigger.triggerFunc ==
DOT16e_TRIGEGER_METRIC_FUNC_SERV_LESS_ABSO &&

70
Simularea Sistemelor de Comunicații Laborator 5

((dot16Ss->servingBs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_RSSI &&
dot16Ss->servingBs->rssMean <
dot16Ss->para.nbrScanRssTrigger
) || (dot16Ss->servingBs->trigger.triggerType ==
DOT16e_TRIGEGER_METRIC_TYPE_CINR &&
dot16Ss->servingBs->cinrMean <
dot16Ss->para.nbrScanCinrTrigger))
&&
(dot16Ss->lastScanTime + dot16Ss->para.nbrScanMinGap)
<=
getSimTime(node))
{// less than threshold
if (dot16Ss->servingBs->trigger.triggerAction ==
DOT16e_TRIGGER_ACTION_MOB_SCN_REQ)
{
// needs to scan NBR BSs
if (DEBUG_NBR_SCAN)
{
MacDot16PrintRunTimeInfo(node, dot16);
printf("inits neighbor BS scan\n");
}

// need to start scanning by tx a req to serving BS


Message* mgmtMsg;
mgmtMsg =
MacDot16eSsBuildMobScnReqMsg(node, dot16,
NULL);
MacDot16SsEnqueueMgmtMsg(node,
dot16,
DOT16_CID_BASIC,
mgmtMsg);
dot16Ss->nbrScanStatus =
DOT16e_SS_NBR_SCAN_WaitScnReq;
dot16Ss->scanReqRetry = DOT16e_MAX_ScanReqRetry;
}
}
}
}
}
}

Codul de mai sus implementează transferul inițiat de stația mobilă. Procedura este
următoarea:
 Se scanează stațiile de bază vecine. Scanarea este efectuată periodic de către stația
mobilă, atunci când valoarea RSS sau CINR de la stația de bază curentă este mai mică
decât pragul de declanșare al procedurii de scanare (condiția dot16Ss->servingBs-
>rssMean < dot16Ss->para.nbrScanRssTrigger sau dot16Ss->servingBs-
>cinrMean < dot16Ss->para.nbrScanCinrTrigger ).
 Transferul se inițiază în una din următoarele situații:
o La inițializarea stației mobile, dacă semnalul recepționat de la stația de bază
curentă este prea slab, sub pragul de sensibilitate al receptorului (condiția
dot16Ss->servingBs->rssMean <
IN_DB(PhyDot16GetRxSensitivity_mW(node, dot16->myMacData-
>phyNumber, moduCodeType))) sau dot16Ss->servingBs->cinrMean <
5.0), se efectuează transferul către o stație de bază cu semnal mai bun

71
Simularea Sistemelor de Comunicații Laborator 5

(condiția dot16Ss->targetBs->rssMean > dot16Ss->servingBs-


>rssMean sau dot16Ss->targetBs->cinrMean > dot16Ss->servingBs-
>cinrMean);
o Dacă semnalul recepționat de la stația de bază scade sub pragul de transfer
(condiția dot16Ss->servingBs->rssMean < dot16Ss-
>para.hoRssTrigger sau dot16Ss->servingBs->cinrMean < dot16Ss-
>para.hoCinrTrigger), se inițiază transferul către stația de bază care are
nivelul RSS sau CINR mai mare cu marginea de transfer decât cel al stației de
bază curente (condiția (targetBs->rssMean - dot16Ss->servingBs-
>rssMean) >= dot16Ss->para.hoRssMargin sau (targetBs->cinrMean -
dot16Ss->servingBs->cinrMean) >= dot16Ss->para.hoCinrMargin)
o Dacă semnalul de la stația de bază curentă este prea slab și o stație de bază
vecină are semnal mai bun, se face transferul către aceasta deși diferența dintre
ele este mai mică decât marginea de transfer pentru a se evita pierderea
conexiunii.
 Se inițiază transferul către stația de bază aleasă, prin trimiterea mesajului MOB-
MSHO-REQ.

E6. După ce s-au editat toate fișierele sursă, se apasă Save All și se compilează proiectul
exata, apăsând Build > Build exata.

Dacă nu apar erori de compilare, ecranul Output ar trebui să apară, arătând astfel:

Dacă apar câteva warning-uri, nu este nici o problemă.

3. Modificarea interfeței grafice a EXata

72
Simularea Sistemelor de Comunicații Laborator 5

Acum că s-a efectuat modificarea de cod propusă, noile opțiuni disponibile, de a putea
selecta metrica de transfer și stabili parametrii aferenți, trebuie să se refle cte în mediul vizual
al EXata.

3.1. Descrierea fișierelor de setări ale interfeței grafice EXata

Mediul vizual EXata oferă ferestre de editare a proprietăților pentru ca utilizatorul să


furnizeze parametrii scenariului și ai protocoalelor. Acești parametri sunt apoi folosiți pentru a
crea fișierele de configurare ale EXata (.config, .app etc.) care sunt folosite drept fișiere de
intrare ale simulatorului EXata. Există editoare de proprietăți asociate cu fiecare componentă
a unui scenariu, cum ar fi dispozitiv (device), legătură, aplicație sau element de rețea. În plus,
există editoare de proprietăți pentru configurarea parametrilor globali și la nivel de interfață.
EXata Architect folosește 3 tipuri de fișiere pentru a construi editoarele de proprietăți.
Acestea sunt:

 Fișiere de componente. Conțin informații structurale pentru afișarea tuturor


segmentelor (grupurilor de parametri) ai editorului de proprietăți. Au extensia „.cmp”
și se găsesc în directorul EXATA_HOME/gui/settings/components
 Fișiere de descriere partajate. Conțin descrierile segmentelor comune mai multor
editoare de proprietăți. Au extensia „.prt” și sunt plasate în directorul
EXATA_HOME/gui/settings/protocol_models
 Fișierul de descriere a setului de unelte . Conține descrierea aspectului Setului de
unelte (icoanele pentru fiecare tip de dispozitiv, aplicație, legătură etc.). Se numește
Toolset.xml și e localizat în directorul EXATA_HOME/gui/settings

Mai multe detalii se pot găsi în Capitolul 5 (Customizing EXata Graphical User
Interface) din EXata-2.2-ProgrammersGuide.pdf.

3.2. Modificarea interfeței grafice a EXata pentru a putea alege metrica de


transfer în WiMAX

Integrarea codului adăugat necesită modificarea unui fișier de descriere partajat. Cum
procedura de transfer se declanșează în funcții ce acț ionează la nivelul MAC în simulator, va
trebui modificat fișierul mac_layer.prt din directorul
EXATA_HOME/gui/settings/protocol_models.

Se efectuează o copie de siguranță a fișierului respectiv și se deschide fișierul original, fie


cu un editor de text, fie cu Visual Studio 2008 și se editează fișierul în felul următor:

E7. Se adaugă la linia 344 următorul text (cel scris îngroșat):


<variable name="Enable Mobility Mode (802.16e)" key="MAC-802.16-SUPPORT-
MOBILITY" type="Selection" default="NO">
<option value="NO" name="No" />
<option value="YES" name="Yes">
<variable name="Handover Trigger Type"
key="MAC-802.16e-HANDOVER-TRIGGER-TYPE" type="Selection" default="RSSI">
<option value="RSSI" name="RSSI">

73
Simularea Sistemelor de Comunicații Laborator 5

<variable name="Neighbor BS
Scanning RSS Trigger (dBm)" key="MAC-802.16e-NEIGHBOR-SCAN-RSS-TRIGGER"
type="Fixed" default="-76.0" help="The SS will try to scan neighboring BSs
if the receiving signal strength (RSS) from serving BS is below is
threshold." />
<variable name="Handover RSS
Trigger (dBm)" key="MAC-802.16e-HANDOVER-RSS-TRIGGER" type="Fixed"
default="-78.0" help="The SS will try to start handover if the receiving
signal strength (RSS) from serving BS is below is threshold." />
<variable name="Handover RSS
Margin (dB)" key="MAC-802.16e-HANDOVER-RSS-MARGIN" type="Fixed"
default="1.0" help="The SS will only handover to a target BS whose RSS
level is higher than that of current serving BS no smaller than this
margin." />
</option>
<option value="CINR" name="CINR">
<variable name="Neighbor BS
Scanning CINR Trigger" key="MAC-802.16e-NEIGHBOR-SCAN-RSS-TRIGGER"
type="Fixed" default="18.0" help="The SS will try to scan neighboring BSs
if the carrier-to-interference-plus-noise-ratio (CINR) from serving BS is
below this threshold." />
<variable name="Handover CINR
Trigger" key="MAC-802.16e-HANDOVER-CINR-TRIGGER" type="Fixed"
default="12.0" help="The SS will try to start handover if the carrier-to-
interference-plus-noise-ratio (CINR) from serving BS is below is
threshold." />
<variable name="Handover CINR
Margin" key="MAC-802.16e-HANDOVER-CINR-MARGIN" type="Fixed" default="1.5"
help="The SS will only handover to a target BS whose CINR is higher than
that of current serving BS no smaller than this margin." />
</option>
</variable>
<variable name="Enable Sleep Mode"
key="MAC-802.16e-SS-SUPPORT-SLEEP-MODE" type="Checkbox" default="NO"/>
<variable name="Enable Idle Mode" key="MAC-
802.16e-SS-SUPPORT-IDLE-MODE" type="Checkbox" default="NO"/>
</option>
</variable>

Acum, se adaugă parametrii pentru stația de bază (la linia 403):


<variable name="Enable Mobility Mode (802.16e)" key="MAC-802.16-SUPPORT-
MOBILITY" type="Selection" default="NO">
<option value="NO" name="No" />
<option value="YES" name="Yes">
<variable name="Handover Trigger Type"
key="MAC-802.16e-HANDOVER-TRIGGER-TYPE" type="Selection" default="RSSI">
<option value="RSSI" name="RSSI">
<variable name="Neighbor BS
Scanning RSS Trigger (dBm)" key="MAC-802.16e-NEIGHBOR-SCAN-RSS-TRIGGER"
type="Fixed" default="-76.0" help="The SS will try to scan neighboring BSs
if the receiving signal strength (RSS) from serving BS is below is
threshold." />
<variable name="Handover RSS
Trigger (dBm)" key="MAC-802.16e-HANDOVER-RSS-TRIGGER" type="Fixed"
default="-78.0" help="The SS will try to start handover if the receiving
signal strength (RSS) from serving BS is below is threshold." />
<variable name="Handover RSS
Margin (dB)" key="MAC-802.16e-HANDOVER-RSS-MARGIN" type="Fixed"

74
Simularea Sistemelor de Comunicații Laborator 5

default="1.0" help="The SS will only handover to a target BS whose RSS


level is higher than that of current serving BS no smaller than this
margin." />
</option>
<option value="CINR" name="CINR">
<variable name="Neighbor BS
Scanning CINR Trigger" key="MAC-802.16e-NEIGHBOR-SCAN-RSS-TRIGGER"
type="Fixed" default="18.0" help="The SS will try to scan neighboring BSs
if the carrier-to-interference-plus-noise-ratio (CINR) from serving BS is
below this threshold." />
<variable name="Handover CINR
Trigger" key="MAC-802.16e-HANDOVER-CINR-TRIGGER" type="Fixed"
default="12.0" help="The SS will try to start handover if the carrier-to-
interference-plus-noise-ratio (CINR) from serving BS is below is
threshold." />
<variable name="Handover CINR
Margin" key="MAC-802.16e-HANDOVER-CINR-MARGIN" type="Fixed" default="1.5"
help="The SS will only handover to a target BS whose CINR is higher than
that of current serving BS no smaller than this margin." />
</option>
</variable>
<variable name="Neighbor BS List" key="MAC-
802.16-BS-NEIGHBOR" type="String" default="{}" optional="true" help="A list
of neighbor BSs for possiable handover, The neighbor BS list could be in
the form of {nodeId1,nodeId2
} or {nodeId1 thru nodeId2} or a combination." />

Se salvează și se închide editorul. Dacă mediul vizual EXata este deschis, trebuie repornit
pentru ca schimbările să aibă efect.

Acum, interfața grafică ar trebui să arate astfel, pentru stația mobilă

și pentru stația de bază:

75
Simularea Sistemelor de Comunicații Laborator 5

4. Testarea funcționării codului modificat

Se validează tot ceea ce s-a realizat până acum prin rularea unui scenariu. Se alege un
scenariu predefinit din cele plasate în directorul
EXATA_HOME/scenarios/advanced_wireless. Se copiază directorul WiMAXHomeToOffice
în EXATA_HOME/scenarios/user și apoi se modifică metrica de transfer pentru toate
nodurile din scenariu la CINR, păstrându-se valorile implicite.

E8. Se rulează scenariul și se compară rezultatele cu cele așteptate (fișierul


WiMAXHomeToOffice.expected.stat)

76

S-ar putea să vă placă și