Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Aug 2001 09:12:52 -0700
From:      Bill Fenner <fenner@research.att.com>
To:        ru@freebsd.org
Cc:        bde@zeta.org.au, kris@obsecurity.org, dcs@freebsd.org, net@freebsd.org
Subject:   Re: cvs commit: src/sys/netinet ip_output.c
Message-ID:  <200108031612.JAA18086@windsor.research.att.com>
References:   <200107190710.f6J7AVl44738@freefall.freebsd.org> <20010719011806.A28830@xor.obsecurity.org> <Pine.BSF.4.21.0107191733360.778-100000@besplex.bde.org> <20010719135423.G69276@sunbay.com>

next in thread | previous in thread | raw e-mail | index | archive | help

>@@ -964,7 +957,7 @@ sendorfree:
> 		/* clean ipsec history once it goes out of the node */
> 		ipsec_delaux(m);
> #endif
>-		if (error == 0) {
>+		if (error == 0 && ia) {
> 			/* Record statistics for this interface address. */
> 			ia->ia_ifa.if_opackets++;
> 			ia->ia_ifa.if_obytes += m->m_pkthdr.len;

Sorry I missed this the first time we went through this.  Putting the &&
ia here causes fragmented packets sent on interfaces without addresses to
not be sent -- which is not really the right plan.  I think the if (ia)
belongs around the stats updates, but not around the ifp_output() call.

Testing should include something like "% ping -I 0.0.0.1 -s 2000
224.0.0.1" (where the "1" is the ifindex of an up multicast-capable
interface with no source address and "2000" is larger than its MTU),
and running tcpdump to make sure those packets make it out.

  Bill

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?200108031612.JAA18086>