Olsr e l’mdns plugin al Gsoc 2012
Dopo la felicità e l’eccitazione per l’accettazione al Google Summer of Code mi sono rimboccato le maniche e ho incominciato a prepararmi sul lavoro da fare.
Dietro consigli di Saverio ho studiato diversi documenti e libri sulla struttura di socket e la gestione della rete in ambiente unix, all’inizio tutti quei socket(), connect() e send() mi hanno lasciato spiazzato, ma con calma è pazienza ho assimilato i concetti di base.
Dovendo lavorare su un progetto in complesso e continuo mutamento come olsr si è presentata la necessità di utilizzare uno strumento per la gestione del codice scritto e organizzazione delle modifiche. L’utilizzo di git era quindi d’obbligo, ed essendo uno strumento potente anche qui bisognava cercarne di capire il funzionamento basilare prima di poterlo usare.
Dopo qualche ultima breve guida sull’utilizzo di vim e cscope ho potuto dare ufficialmente il via alle danze, ho fatto un fork della branch stable di olsr e da li si è potuto incominciare a lavorare direttamente sul plugin di mdns. Il problema attuale del plugin è che non distingueva se un pacchetto mdns presente nella rete locale era stato ricevuto dalla rete olsr oppure era stato generato localmente, per ovviare al problema ho dovuto modificare il Time to Live (o Hop Limit per l’ipv6) dei pacchetti mdns provenienti dalla rete olsr impostandolo ad 1, poi ho anche fatto in modo che il plugin scartasse i pacchetti mdns presenti nella rete locale con time to live uguale a 1. In questo modo i pacchetti generati da dispositivi presenti nella rete interna sarebbero tranquillamente passati nella rete olsr mentre quelli provenienti dalla rete olsr sarebbero stati comunque fruibili ai device sulla rete interna.
Dopo qualche piccolo problema per la gestione delle struct dei pacchetti ipv6 una prima versione del codice è ora pronta per il testing, utilizzando netkit ora mi aspettano le prove e se necessario il relativo debug.
Author Profile
Latest entries
Google Summer of CodeApril 2, 2013Google Summer of Code 2013 meetup a Roma
Digital MassMarch 28, 2013Digital Mass #6: OLSR Advanced and dynamic Routing
UncategorizedAugust 18, 2012mDNS 1.0.1 plugin ormai completato
Google Summer of CodeJune 28, 2012La nuova versione dell’OLSR mDNS plugin inizia a prendere forma
Tags: git, netkit, programming, socket