[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <5370F8EB.2070009@oktetlabs.ru>
Date: Mon, 12 May 2014 20:38:03 +0400
From: "Yurij M. Plotnikov" <Yurij.Plotnikov@...etlabs.ru>
To: netdev@...r.kernel.org
CC: "Alexandra N. Kossovsky" <Alexandra.Kossovsky@...etlabs.ru>
Subject: Socket receives packet to multicast group to which it was not joined
since kernel 3.13.10-1
On kernel 3.13.10-1 I see that socket joined to one multicast group
receives packets to another multicast address. That can be reproduced by
the following example:
1. socket(DGRAM) -> 3
2. bind(3, 0.0.0.0:12345) -> 0
3. setsockopt(3, IP_MULTICAST_IF, {224.168.2.9, 7}) -> 0
// "7" is correct interface index
4. Send packet from peer host to 224.168.2.9:12345
5. poll({3, POLLIN}) -> 1
6. recv(3) -> <data_length>
5. Send packet from peer host to 225.168.2.9:12345
// Note that the address is not the same!
6. poll({3, POLLIN}) -> 1
7. recv(3) -> <data_length>
I checked kernel 3.12.6-2, there is no such problem. I have placed
simple C-program in attachment to reproduce the behaviour. It should be
called:
./mult_recv <mcast_address> <interface index> i.e. in example above:
./mult_recv 224.168.2.9 7
View attachment "mult_recv.c" of type "text/x-csrc" (1786 bytes)
Powered by blists - more mailing lists