hello,
we found a problem in using updcast in a context of multi-routers when the rdv-addr is not multicast.
Indeed, in this case, the multicast ttl must be greater than 1 (--ttl). But it is only assign during the processing of rdv-addr and only if rdv-addr is a multicast IP :
udps-negotiate.c: /* Only do the following if controlMcastAddr is indeed an mcast address ... */ if(isMcastAddress(&net_config->controlMcastAddr)) { setMcastDestination(sock[0], net_config->net_if, &net_config->controlMcastAddr); setTtl(sock[0], net_config->ttl);
But it is not assign during the processing of data-addr :
udps-negotiate.c: if(isMcastAddress(&net_config->dataMcastAddr)) setMcastDestination(sock, net_config->net_if, &net_config->dataMcastAddr);
Therefore, if rdv-addr is unicast then TTL remains to 1.
So I suggest to patch the code this way :
- if(isMcastAddress(&net_config->dataMcastAddr)) + if(isMcastAddress(&net_config->dataMcastAddr)) { setMcastDestination(sock, net_config->net_if, &net_config->dataMcastAddr); + setTtl(sock, net_config->ttl); + }
Best regards,