tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: UDP multicast

Mihai Chelaru wrote:

Currently if two UDP sockets join the same multicast group but on
different interfaces both of them get a packet received on an interface
regardingless the interface supplied when joined group. Also, when an
UDP packet is received, the pcb match code seems to compare dst to
socket bound address which is simply erronated IMO because you have to
bound sockets to either INADDR_ANY or multicast group address in order
to receive multicast datagrams.


Getting back on this one here is a summary how others handle it:

- FreeBSD did change it to this in rev 1.140 of udp_usrreq.c but added a sysctl knob that controlled the delivery. Default was at that time old delivery type. Since then they implemented IGMPv3 rewrote much of the mcast code, now new behaviour being the only one used as far as I can tell. Anyway, they drop the that sysctl oid entirely and also droped support for interface index selection.
        - OpenBSD has only our old behaviour
- Solaris has only the new behaviour as far as I can tell from a test application - DFlyBSD did change in rev 1.7 of udp_usrreq.c, but also added a sysctl that defaults to the new conduct.

Also reading RFC3376 and RFC3678 (2.1), I believe we're not doing the correct thing, currently.


Home | Main Index | Thread Index | Old Index