Date: Wed, 19 Jul 2006 12:35:15 +0100 (BST) From: freebsd nettest <freebsd_nettest@yahoo.co.in> To: freebsd-net@freebsd.org Subject: Supporting Multicast in Network driver Message-ID: <20060719113515.62162.qmail@web7803.mail.in.yahoo.com>
next in thread | raw e-mail | index | archive | help
Hi,
I would like to support MULTICAST in my network driver. I have define a function set_multi which will extract the Ethernet multicast address and update the corresponding hardware register. This function is called in the SIOCADDMULTI and SIOCDELMULTI ioctl case.
I used following user level program to test the multicast functionality of the driver. When I run the user level program, I could see that the control comes to SIOCADDMULTI ioctl and the correct Ethernet Multicast Mac address is added. After that when I try to ping the Multicast IP address from remote machine, the ping is not responding. Do I need to do any thing extra apart from update the Ethernet Multicast address?
User level program:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
#include <unistd.h>
//#include <net/if.h>
#include <netinet/in.h>
//#include <sys/types.h>
#include <sys/socket.h>
int
main(int argc, char *argv[])
{
struct ip_mreq mreqn;
int s;
struct in_addr ip;
if (argc != 3) {
fprintf(stderr, "usage: %s <dev> <group>\n", argv[0]);
exit(1);
}
if((s = socket(PF_INET, SOCK_DGRAM, 0)) < 0) {
perror("socket");
exit(1);
}
memset(&mreqn, 0, sizeof(mreqn));
inet_aton(argv[1], &(mreqn.imr_interface));
/* mreqn.imr_interface = ip; */
if (inet_pton(AF_INET, argv[2], &mreqn.imr_multiaddr) <= 0) {
fprintf(stderr, "%s: \"%s\" invalid group address\n", argv[0],argv[2]);
exit(1);
}
if (setsockopt(s, 0, IP_ADD_MEMBERSHIP,&mreqn,sizeof mreqn) < 0) {
perror("IP_ADD_MEMBERSHIP");
exit(1);
}
printf("joined group %s on %s (pausing...)\n", argv[2], argv[1]);
fflush(stdout);
pause();
}
Thanks
---------------------------------
Find out what India is talking about on Yahoo! Answers India.
Send FREE SMS from New Yahoo! Messenger to Mobile: Download NOW!
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060719113515.62162.qmail>
