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>