I have a service with 2 addresses on an interface (192.168.1.148/24 and 10.238.0.51/24) and a discoverer with only one address (192.168.1.2/24). With this configuration the discoverer does not always discover the service. In wireshark I can see that sometimes the service chooses 10.238.0.51 ip address to communicate (as addresses are stored in a HashSet it depends on its seed). Thus the discoverer does not see these packets as it does not have such an address.
I think it would be worth sending dedicated announcements for every address on an interface and responses only for matched addresses with a source one. I have a quick patch which implements this behavior although it is a little hacky.
I have a service with 2 addresses on an interface (
192.168.1.148/24and10.238.0.51/24) and a discoverer with only one address (192.168.1.2/24). With this configuration the discoverer does not always discover the service. InwiresharkI can see that sometimes the service chooses10.238.0.51ip address to communicate (as addresses are stored in aHashSetit depends on its seed). Thus the discoverer does not see these packets as it does not have such an address.I think it would be worth sending dedicated announcements for every address on an interface and responses only for matched addresses with a source one. I have a quick patch which implements this behavior although it is a little hacky.