[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