[ninux-dev] Diff della topologia

Nemesis nemesis at ninux.org
Sun Nov 9 23:34:04 CET 2014


On 11/09/2014 08:15 PM, Clauz wrote:

[CUT]

>>> - a parte i collegamenti su cavo, temo che i costi sui link
>>> wireless potrebbero cambiare in continuazione, e quindi ogni volta
>>> il diff per una rete prevalentemente wireless sarebbe quasi tutta
>>> la rete (rendendo vano il diff). Forse avrebbe senso calcolare il
>>> diff sulla topologia assumendo tutti i link con costo pari a 1, e
>>> gestire poi i costi sui link con un'API separata?
>>
>> Scorporare questa parte per poi sostanzialmente fare la stessa cosa
>> (query nel db) non credo abbia troppo senso. Se il peso dell'arco
>> rimane nel db credo che questa sia la soluzione più veloce.
>>
>> Potremmo,però , arrotondare tutto alla parte intera, e fare il diff
>> con quello. Così lo inseriamo nel db solo quando cambia sensibilmente.
> Forse si potrebbe pensare a chiamate (o callback, etc) diverse dell'API:
>  - chiamata che ritorna diff nella topologia comprese tutte le minime
> variazioni di costo sui link
>  - chiamata che ritorna diff nella topologia come se tutti i link
> avessero peso 1
>  - chiamata che ritorna diff nella topologia quando il costo sui link
> supera un certo delta passato come parametro
>  - chiamata che ritorna tutta la topologia corrente (quindi NON il
> diff), inclusi i costi
>
> Clauz

Cominciamo col caso più semplice da realizzare e poi aggiungiamo nuove
feature una alla volta.

Ho creato il pacchetto python installabile:
https://github.com/ninuxorg/netdiff

Leggete il README, è minimale ma ci sono scritte le cose essenziali per
poter collaborare.

Ho utilizzato il nome netdiff perchè mi sembrava appropiato, se una
volta che avremo le idee più chiare vorremo cambiarlo potremo farlo.

Ho preso il codice di Gabriel e l'ho semplificato e c'ho scritto un test:
https://github.com/ninuxorg/netdiff/blob/master/tests/olsr1/tests.py#L14

Il test dovrebbe assicurarsi che nulla è cambiato (perchè gli ho passato
la stessa topologia come old e come new) ma non conoscendo la libreria
non so quale metodo usare, credo sia edges() ma preferisco verificare
con calma o lasciare che qualcuno di voi faccia modifiche.

Ecco alcune semplici domande per poter procedere:

  * @Gabriel, hai un account su github in modo che posso abilitarti a
    fare commit sul repo?

  * Servono alcuni esempi di topologie OLSR1 semplici su cui scrivere
    gli unit test, quella che ho scaricato dall'esempio iniziale di
    Gabriel (salvata qui:
    https://github.com/ninuxorg/netdiff/blob/master/tests/olsr1/topology1.json)
    è troppo cicciotta per poterci lavorare in modo agile; qualche idea
    di come recuperarli?

  * @Clauz: per quanto riguarda tutte le feature del vecchio parser, hai
    una vaga idea di come potremo riportarle su questo nuovo? Ho paura
    che alcune cose saranno toste perchè forse lo script che sta dentro
    nodeshot 0.9 fa molte cose specifiche per noi... o sbaglio? Spero di
    sbagliarmi ... :D

Ricordiamoci che l'idea che abbiamo oggi è vaga e avrà bisogno di molti
miglioramenti e cambiamenti.. cerchiamo la soluzione migliore che ci
assicuri questi obiettivi:

  * disaccoppiare il codice che capisce i cambiamenti della topologia da
    quello dell'applicazione web

  * fare in modo che chi non ha conoscenze di django e nodeshot possa
    comunque contribuire alla parte che gestisce la topologia

  * adottare la filosofia unix di fare una modulo che fa una cosa ma la
    fa bene

  * supportare più protocolli di routing, l'ideale sarebbe iniziare con
    Olsr1 e batman-adv

  * fare in modo che questo modulo sia riutilizzabile anche da altre
    community

  * scrivere una documentazione chiara e semplice

Se riusciamo a fare queste cose avremo fatto qualcosa di utile e
duraturo, oltre che aver imparato un sacco di cose.

E soprattutto spero che riusciremo a lavorarci insieme, evitando che
tutta la conoscenza sia centralizzata su di me.

Bella!
Nemesis

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ml.ninux.org/pipermail/ninux-dev/attachments/20141109/4dde8002/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: OpenPGP digital signature
URL: <http://ml.ninux.org/pipermail/ninux-dev/attachments/20141109/4dde8002/attachment-0001.sig>


More information about the ninux-dev mailing list