From: Vlad Yasevich <vladislav.yasevich@hp.com>
To: David Stevens <dlstevens@us.ibm.com>
Cc: Brian Haley <brian.haley@hp.com>, netdev <netdev@vger.kernel.org>
Subject: Re: multicast: bug or "feature"
Date: Wed, 17 Oct 2007 17:25:40 -0400 [thread overview]
Message-ID: <47167DD4.3020108@hp.com> (raw)
In-Reply-To: <OF8C1D2DD7.B02D8047-ON88257377.00705A00-88257377.00707296@us.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 782 bytes --]
David Stevens wrote:
> Can you send the contents of /proc/net/igmp and the packet trace,
> also? And the code?
>
> +-DLS
>
# cat /proc/net/igmp
Idx Device : Count Querier Group Users Timer Reporter
1 lo : 0 V3
010000E0 1 0:00000000 0
2 eth0 : 3 V2
010000E0 1 0:00000000 0
3 eth1 : 4 V2
030100E0 1 0:00000000 1
010000E0 1 0:00000000 0
Source attached. The trace only shows a single udp packet and you can
re-create it with the attached small apps.
-vlad
[-- Attachment #2: client.c --]
[-- Type: text/x-csrc, Size: 984 bytes --]
#include <stdio.h>
#include <string.h>
#include <netinet/in.h>
int main(int argc, char **argv)
{
struct sockaddr_storage dest;
struct sockaddr_storage src;
struct sockaddr_in *s = (struct sockaddr_in*) &src;
struct sockaddr_in *d = (struct sockaddr_in *)&dest;
int sock;
char msg[] = "Hello Multicast";
int off = 0;
memset(&dest, 0, sizeof(dest));
memset(&src, 0, sizeof(src));
if (argc < 3) {
printf("Usage: <src ip> <mcast dest>\n");
return 1;
}
d->sin_family = s->sin_family = AF_INET;
d->sin_port = htons(2000);
inet_aton(argv[1], &s->sin_addr);
inet_aton(argv[2], &d->sin_addr);
sock = socket(AF_INET, SOCK_DGRAM, 0);
if (setsockopt(sock, IPPROTO_IP, IP_MULTICAST_LOOP, &off,
sizeof(off))) {
perror("setsockopt");
return 1;
}
if (setsockopt(sock, IPPROTO_IP, IP_MULTICAST_IF, s, sizeof(*s))) {
perror("setsockopt");
return 1;
}
sendto(sock, msg, sizeof(msg), 0, (struct sockaddr *)d, sizeof(*d));
close (socket);
return 0;
}
[-- Attachment #3: server.c --]
[-- Type: text/x-csrc, Size: 852 bytes --]
#include <stdio.h>
#include <string.h>
#include <netinet/in.h>
int main(int argc, char **argv)
{
struct sockaddr_in addr;
int addr_len;
struct ip_mreq req;
int sock;
char msg[256];
memset(&addr, 0, sizeof(addr));
if (argc < 3) {
printf("Usage: <interface ip> <mcast group>\n");
return 1;
}
sock = socket(AF_INET, SOCK_DGRAM, 0);
addr.sin_family = AF_INET;
addr.sin_port = htons(2000);
if (bind(sock, (struct sockaddr *)&addr, sizeof(addr))) {
perror("bind");
return 1;
}
inet_aton(argv[1], &req.imr_interface);
inet_aton(argv[2], &req.imr_multiaddr);
if (setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, &req,
sizeof(req))) {
perror("setsockopt");
return 1;
}
recvfrom(sock, msg, sizeof(msg), 0, (struct sockaddr *)&addr, &addr_len);
printf("Message recieved: %s", msg);
close (socket);
return 0;
}
next prev parent reply other threads:[~2007-10-17 21:26 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-17 19:58 multicast: bug or "feature" Vlad Yasevich
2007-10-17 20:10 ` David Stevens
2007-10-17 20:23 ` Vlad Yasevich
2007-10-17 20:29 ` David Stevens
2007-10-17 21:25 ` Vlad Yasevich [this message]
2007-10-17 23:11 ` David Stevens
2007-10-18 1:20 ` Vlad Yasevich
[not found] ` <47166BD5.7090207@hp.com>
2007-10-17 20:19 ` Vlad Yasevich
2007-10-18 16:17 ` Vlad Yasevich
2007-10-19 11:43 ` Herbert Xu
2007-10-19 15:21 ` David Stevens
2007-10-19 16:49 ` Vlad Yasevich
2007-10-19 17:43 ` David Stevens
2007-10-19 18:43 ` Vlad Yasevich
2007-10-19 20:23 ` David Stevens
2007-10-19 20:39 ` Brian Haley
2007-10-19 21:25 ` David Stevens
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47167DD4.3020108@hp.com \
--to=vladislav.yasevich@hp.com \
--cc=brian.haley@hp.com \
--cc=dlstevens@us.ibm.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).