[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <BA41E8A07B73A041948C2E3A4EF6239D062F0C@av-digital-exch.avdigital.at>
Date: Mon, 11 Feb 2008 15:26:44 +0100
From: "Reither Robert" <Robert.Reither@...digital.at>
To: "David Stevens" <dlstevens@...ibm.com>
CC: <netdev@...r.kernel.org>
Subject: AW: Problem receiving multicast/promiscuous-mode with kernel.2.6.24
Visit AVD on prolight+sound in Frankfurt from 12.-15. March 2008 - Hall 8.0, Stand G16
________________________________________________________________________
Hi David,
thanks for your help. Your input is always welcome ;-)
But according to Linux Programmer's Manual it should be OK to use ifindex of 0
e.g. (http://www.rt.com/man/ip.4.html)
but maybe this document is depcecated/obsolte ...
Well anyway, i did what u suggested, used eth0.3 as interface (i'm using VLAN)
Setting ifindex to eth0 won't help .. strange, but well ...,
maybe receiving is blocked by the virtual interface somehow, should be.
The problem is, now i get unreliable results.
At first attempt, it always worked as before with ifindex=0, but now further attempts SOMETIMES works !!!
Every 3rd or forth attempt i can receive the packets. (this way maybe the same with old method, i'll investigate further)
But netstat always shows the join (and the absence, if i close socket/leave mc-group)
IPv6/IPv4 Group Memberships
Interface RefCnt Group
--------------- ------ ---------------------
lo 1 224.0.0.1
eth0 1 224.0.0.1
eth0.3 1 224.1.9.0
eth0.3 1 224.0.0.1
Do u know a way to debug this further ?
It's not so easy for me to build a small app to show the faulty behav, but i'll try.
Robert
-----Ursprüngliche Nachricht-----
Von: netdev-owner@...r.kernel.org
[mailto:netdev-owner@...r.kernel.org]Im Auftrag von David Stevens
Gesendet: Donnerstag, 07. Februar 2008 17:09
An: Reither Robert
Cc: netdev@...r.kernel.org
Betreff: Re: Problem receiving multicast/promiscuous-mode with
kernel.2.6.24
You need to join the multicast group on the interface you want
to receive it. If you're setting both imr_address and imr_index
to 0, you haven't specified an interface.
Instead of setting imr_ifindex to 0, try setting it like this:
imr.imr_ifindex = if_nametoindex("eth0");
(or whatever interface you need).
You can verify that you've joined the group on the correct
interface with "netstat -g", also. Make sure that the interface
field is correct for the group you want.
And because I can't resist mentioning it, "inet_aton" is deprecated--
suggest inet_pton() with appropriate arguments and return value
checking instead.
There was a bug fix where the sense of promiscuous mode was
backwards for multicasting, which is probably why it was accidently
(and incorrectly) working in earlier kernels.
If that doesn't do it for you, let me know; better if you can post the
full code (or even better, the smallest subset that demonstrates the
problem).
+-DLS
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists