[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