Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 May 1999 04:44:04 -0400
From:      Youngsu Chae <yschae@cc.gatech.edu>
To:        net@freebsd.org
Subject:   RAW IP socket for IGMP packet..
Message-ID:  <37412853.439D35A5@cc.gatech.edu>

next in thread | raw e-mail | index | archive | help
Hi all,

I've been struggling with raw ip socket to pick up IP/IGMP packet.
As I understand from the 'raw_ip.c' source code, if the following three
conditions are satisfied

1) open a raw ip socket with  protocol value as IPPROTO_IGMP,
2) do not bind local address,
3) do not specify foreign address,

then, the socket should get all the IP/IGMP packets with whatever
destination group addresses.
But, I couldn't get any IGMP packets..
The only way I can get the IP/IGMP packet is to subscribe to a specific
group.
That gives me only the IGMP packets destined to the group.
How can I get all IGMP packets with raw ip socket?
I've also tested with protocol value IPPROTO_IP(0).
In this case it should pick up all IP packets except TCP/UDP (those
packets are handled only in kernel).
It picks up ICMP packets but not IGMPs.


The following is the code for opening raw IP socket for IGMP..
  /* get an IGMP socket */
  if ((igmp_socket = socket(AF_INET,SOCK_RAW,IPPROTO_IGMP)) < 0){
    panic ("socket() failed!");
  }

  k_hdr_include(TRUE);    /* turn on header include option */
  k_set_rcvbuf(256*1024,48*1024); /* lots of input buffering        */
  k_set_ttl(1);  /* restrict multicasts to one hop */
  k_set_loop(FALSE);  /* disable multicast loopback     */


Thanks,

Y.Chae



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?37412853.439D35A5>