[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(usagi-users 02621) UDP IPv6 Multicast
- To: usagi-users@xxxxxxxxxxxxxx
- Subject: (usagi-users 02621) UDP IPv6 Multicast
- From: Brian Buesker <bbuesker@xxxxxxxxxxxx>
- Date: Fri, 14 Nov 2003 10:10:29 -0800
- Reply-to: usagi-users@xxxxxxxxxxxxxx
- User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225
I am noticing strange behavior on the 2.6 series kernel (I tested on
2.6.0-test9). When I have two sockets which bind to and join different
multicast addresses but with the same UDP port, and then I send a packet
to one of those multicast addresses, the packet gets delivered to both
of them. For example, if one socket is bound to ff01::1:1 UDP port 2000
and joins multicast group ff01::1:1, and a second socket is bound to
ff01::1:2 UDP port 2000 and joins multicast group ff01::1:2, and then I
send a packet to ff01::1:1 UDP port 2000, it actually gets delivered to
both sockets. This does not happen in the 2.4 series kernel.
I have narrowed it down to the interaction between the following two
functions in the kernel: inet6_mc_check and and udp_v6_mcast_next. It
seems that the return semantics were changed for inet6_mc_check in the
2.6 series kernel without changing the logic used when calling it in
udp_v6_mcast_next. Is there a reason for this change, or is this just a bug?
Thanks,
Brian Buesker