[Ninux-Wireless] mdns o p2pd

ZioPRoTo (Saverio Proto) zioproto a gmail.com
Gio 10 Giu 2010 14:29:46 CEST


>>The plugin captures the traffic (only IPv4 if OLSR is running IPv4 and only
>> IPv6 if OLSR is running IPv6)
>>and encapsulates this traffic in OLSR messages that are forwarded to all
>> the other nodes in the mesh.
>
> ma nel mio caso i nodi offrono connettivita' ai client sia via ipv6 sia via
> ipv4 ( con niit ) cosa succede? a noi serve che funzioni sia con ipv6 che
> con ipv4 ( niit )

Dato che fai girare OLSR in IPv6 solo il traffico IPv6 verrà encapsulato.

Questo plugin è stato fatto prima di niit, e funziona così perché se
la rete era solo IPv6 non aveva senza far girare mDNS ipv4 che
annunciava servizi che non erano routabili.

Ovviamente si può fare una patch e sistemare a piacimento.

Nel file NetworkInterfaces.c riga 145

if (olsr_cnf->ip_version == AF_INET) {
    bindTo.sll_protocol = htons(ETH_P_IP);
  } else {
    bindTo.sll_protocol = htons(ETH_P_IPV6);
  }

Crea un socket raw che se OLSR è configurato in IPv4 tira su solo
pacchetti IPv4, altrimenti solo pacchetti IPv6.

Basta che togli il controllo e usi una roba tipo ETH_P_ANY (boh
controlla questo nome sicuramente è sbagliato) invece di ETH_P_IP o
ETH_P_IPV6.

Cerca in if_ether.h quello che ti serve.

Saverio



Saverio



Maggiori informazioni sulla lista Wireless