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>