Subject: Re: Processing of IGMP packets in ip_input
To: Hitoshi Asaeda <Hitoshi.Asaeda@sophia.inria.fr>
From: Satish Dattatri <dattatri@pipalsys.com>
List: tech-net
Date: 12/04/2002 11:49:37
Hitoshi Asaeda wrote:
>>Currently the code in ip_input assumes that user-land will get IGMP raw
>>packet only if MRT_INIT is done. I suggest we move the lines
>>
>>if (ip->ip_p == IPPROTO_IGMP)
>>	goto ours;
>>
>>after the if(ip_mrouter) {...} so that userland can get IGMP packets
>>without doing MRT_INIT.
> 
> 
> No. It should not.
> 

Why should it not? Is there some reason behind it or you mean
currently it is needed only for mcast routing daemon.

> Checking IPPROTO_IGMP should be able only for a multicast router,
> since a multicast router needs to receive "every" IGMP packet whether
> or not it belongs to the destination groups.

Mrouted or any other mcast routing daemon ofcourse needs the IGMP
packets. We then are putting the limitation that no other process
can open a RAW IGMP socket and get a feed into the incoming IGMP
packets. One could also use other mechanisms to get these packets...

But, it is possible to get other protocol packets to user-land
via a RAW socket. A RAW socket should be able to get the packet
whether a mcast routing daemon is running or not. However, in
almost all the cases it is reqd only for mcast routing daemon.


Thanks,
Satish