[Numbat] Omnet++ - postepy

Tomasz Mrugalski thomson at klub.com.pl
Tue Dec 12 02:44:48 CET 2006


Heja,

Wlasnie zalozylem liste mailowa w celu ulatwienia kontaktu. Kiedy prace 
nad kodem rusza na dobre, latwiej bedzie sie wymieniac informacjami.
Aby napisac cos na liste, nalezy wyslac maila na numbat at klub.com.pl. 
Pamietajcie, ze archiwa listy sa dostepne publicznie.

Na poczatek drobna informacja: zaimplementowalem cos, co mozna nazwac 
szkieletem schedulera. Jezeli juz przegryzliscie sie przez stosowny opis w 
normie, to mozecie ponizsze pare akapitow olac.

RAMKA RADIOWA
802.16 dzieli czas na pewne okresy zwane ramkami (frame). W kazdej ramce 
radiowej, ktora w przypadku modulacji OFDMA (a tylko taka bedziemy sie 
zajmowac) zazwyczaj trwa 5ms, BS wysyla pewne niezbedne do utrzymania 
porzadku informacje. Sa to DL-MAP, UL-MAP, a takze co jakis czas DCD i 
UCD. DL-MAP to message, ktory okresla, co w danej ramce bedzie przesylane 
w downlinku (DL), czyli w kierunku od BSa do SSow. Podobnie UL-MAP 
okresla, co i kiedy moze byc transmitowane w uplinku (UL). DCD (downlink 
Channel Descriptor) i UCD (Uplink Channel Descriptor) to dodatkowe 
informacje, ktore opisuje uzyte modulacje, adres BSa, mozliwosci i pare 
inny pierdol.

CONNNECTIONS
WiMax okreslany jest jako connetion-oriented. Oznacza to, ze dane 
przesylane sa w polaczeniach. Kiedy SS wejdzie do sieci (tzn. zakonczy 
procedure network entry, ktora na szczescie na razie nie musimy sie 
zajmowac), ma on skonfigurowane kilka polaczen: basic, primary i zwykle 
secondary. Sa to tzw. polaczenia kontrolne, po ktorych idzie ruch 
sterujaco-kontrolny. Do przesylania danych uzytkownika nalezy skreowac 
dodatkowe polaczenia danych (poprzez wykonanie procedury DSA, ktora tez na 
razie zlejemy). Polaczenia zwane sa czesto connection lub service flow.

SCHEDULER
Aby SS mogl cos wogole wyslac, musi otrzymac stosowny przydzial pasma od 
BSa. Ale jak poprosic o pasmo, skoro SS nie moze nic wyslac? To zalezy od 
tego, jakiego rodzaju jest polaczenie. Sa 4 podstawowe typy polaczen:
-Best Effort (BE). Najgorsze z mozliwych. Tutaj SS musi poprosic o pasmo, 
zanim cokolwiek wysle, a i tak nie ma gwarancji, ze BS przydzieli tyle, o 
ile SS prosil.
-Unsolicited Grant Service (UGS). Najlepsze, najdrozsze i najprostsze do 
zaimplementowania. BS co jakis czas wysyla przydzial dla danego SSa.
-non-real time Packet Switched (nrtPS).
-real time Packet Switched (rtPS) - na razie malo wazne typy polaczen.

STATUS
Ok, skoro wiecie juz, jak to ma dzialac, to teraz opis co dziala. Sa 
skonfigurowane na sztywno 2 placzenia: jedno BE i jedno UGS. BE nie 
dziala. UGS dziala w trybie dummy, bo w kazdej ramce przeznawany jest 
jeden grant. BS generuje DL-MAPy i UL-MAPy. Jezeli ma cos do wyslanie w 
DL, to odpowiedni wpis jest dodwany do DL-MAPy. SS z kolei jest w stanie 
odebrac Ul-MAPe i na jej podstawie wywrozyc, czy moze cos wyslac, czy tez 
nie. Jezeli ma cos do wyslania, to dane wysyla.

Calosc dziala w mega prymitywnych warunkach, ale umozliwia transport 
danych w obie strony pomiedzy SSem i BSem. No wlasnie, bo napisalem 
jeszcze taki tymczasowy modul ipv6node, ktory co jakis czas transmituje 
dane. Taki sobie prymitywny generatorek. Jeden taki jest podpiety do SSa, 
a drugi do BSa. Calosc wyglada tak, ze BS i SS co jakis czas wysylaja do 
siebie nawzajem message IPv6. Taki jest status na dzis.

CHECKINY
Ok, macie zalozone konta do SVNa, ktore nie umozliwiaja Wam zapisu. 
Dlaczego read-only? Zeby przez przypadek nie zrobic sobie i innym 
uzytkownikom krzywdy. Kiedy wprowadzicie jakies zmiany, ktore uznacie za 
sensowne, mozecie zrobic patcha, ktory bedzie zawieral Wasze zmiany. 
Takiego patcha podeslecie do mnie, ja przejrze Wasze zmiany i je 
wcheckinuje. Stworzenie patcha to prymitywna sprawa. W Linuxie wystarczy 
wydac polecenie: svn diff. Pod windowsem tez nie jest trudno. Prawym 
przycikiem z menu wybieramy opcje (o ile dobrze pamietam) make patch.

Ok, to na razie tyle. W najblizszym czasie mam w planach:
- zrobic sensowna konfiguracje polaczen (teraz podaje sie ile bajtow ma 
byc przydzielane w kazdej ramce, powinno byc w bitach na sekunde)
- zrobic obsluge best effortu, czyli wysylanie prosb o pasmo (tzw. BWR - 
bandwidth request).

Ok, to na dzis tyle.

Pzdr,
-- 
Tomasz Mrugalski,              | " Talk is cheap. Show me the code."  |
thomson(at)klub(dot)com(dot)pl |                     Linus Torvalds   |

p.s.
Wybralem tez nazwe projektu - numbat. Skrot udalo sie jakos koslawo 
powiazac z sieciami i mobility. Tak naprawde numbat to taki maly 
mrowkojad zyjacy w Australii. Nazwa taka sobie, ale google nie wyplulo 
zadnej strony zwiazanej z informatyka zawierajacej to slowo. Jest wiec 
unikalne i nieuzywane, zatem pasuje.


More information about the Numbat mailing list