The multicast handling code in ip_input() has the following lines
15247 if (ipha->ipha_protocol != IPPROTO_UDP ||
15248 !CLASSD(ipha->ipha_dst)) {
15249 ire = ip_rput_process_broadcast(&q, mp,
15250 ire, ipha, ill, dst, cgtp_flt_pkt,
15251 ll_multicast);
15252 if (ire == NULL)
15253 continue;
15254 }
which are preceded by the comment:
/*
* Skip broadcast checks if packet is UDP multicast;
* we'd rather not enter ip_rput_process_broadcast()
* unless the packet is broadcast for real, since
* that routine is a no-op for multicast.
*/
My question is: why make a special case of UDP multicast? (For other
protocols, we'd drop into ip_rput_process_broadcast(), do nothing,
and come back to ip_input() from where we'd call ip_proto_input()
to handle the multicast packet). Is this some kind of fast-path for
protocols like ripv2?
--Sowmini
_______________________________________________
networking-discuss mailing list
[email protected]