Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Jul 1999 17:54:46 +0100
From:      Kevin Bracey <kbracey@e-14.com>
To:        freebsd-net@freebsd.org
Subject:   IGMP reports not sent if no multicast route
Message-ID:  <e5bd942149%kbracey@kbracey.acorn.co.uk>

next in thread | raw e-mail | index | archive | help
I've just stumbled across a bug in ip_output() while testing a multicast
TFTP client on a system with a FreeBSD-derived network stack.

The system has no default route or route for 224.0.0.0 set up. It is not
sending any multicasts, except for the IGMP reports generated by its group
joins.

The problem is that ip_output() will not output multicast packets if
it can't find a route for the destination group, even if the caller
has provided an interface in the multicast options, as igmp_sendpkt() does.

The same problem would arise a user process wanted to multicast on a
specified interface.

And when it does work, various stats to do with the default multicast route
end up being interpreted, even though that route ends up not being used!

A quick fix would appear to be the following:

  line 214 of ip_output.c:
    
		ifp = ia->ia_ifp;
		ip->ip_ttl = 1;
		isbroadcast = in_broadcast(dst->sin_addr, ifp);
!	} else {
		/*
		 * If this is the case, we probably don't want to allocate
		 * a protocol-cloned route since we didn't get one from the

  change to:
  
		ifp = ia->ia_ifp;
		ip->ip_ttl = 1;
		isbroadcast = in_broadcast(dst->sin_addr, ifp);
!	} else if (!(imo && imo->imo_multicast_ifp &&
!	           IN_MULTICAST(ntohl(ip->ip_dst.s_addr))) {
		/*
		 * If this is the case, we probably don't want to allocate
		 * a protocol-cloned route since we didn't get one from the

Any comments?
     
-- 
Kevin Bracey, Senior Software Engineer
Pace Micro Technology plc                     Tel: +44 (0) 1223 725228
645 Newmarket Road                            Fax: +44 (0) 1223 725328
Cambridge, CB5 8PB, United Kingdom            WWW: http://www.acorn.co.uk/


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?e5bd942149%kbracey>