From owner-freebsd-net Fri Aug 3 9:13: 1 2001 Delivered-To: freebsd-net@freebsd.org Received: from mail-blue.research.att.com (mail-blue.research.att.com [135.207.30.102]) by hub.freebsd.org (Postfix) with ESMTP id 7D81B37B408; Fri, 3 Aug 2001 09:12:59 -0700 (PDT) (envelope-from fenner@research.att.com) Received: from alliance.research.att.com (alliance.research.att.com [135.207.26.26]) by mail-blue.research.att.com (Postfix) with ESMTP id EB01A4CE05; Fri, 3 Aug 2001 12:12:58 -0400 (EDT) Received: from windsor.research.att.com (windsor.research.att.com [135.207.26.46]) by alliance.research.att.com (8.8.7/8.8.7) with ESMTP id MAA13674; Fri, 3 Aug 2001 12:12:53 -0400 (EDT) From: Bill Fenner Received: (from fenner@localhost) by windsor.research.att.com (8.8.8+Sun/8.8.5) id JAA18086; Fri, 3 Aug 2001 09:12:52 -0700 (PDT) Message-Id: <200108031612.JAA18086@windsor.research.att.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII To: ru@freebsd.org Subject: Re: cvs commit: src/sys/netinet ip_output.c Cc: bde@zeta.org.au, kris@obsecurity.org, dcs@freebsd.org, net@freebsd.org References: <200107190710.f6J7AVl44738@freefall.freebsd.org> <20010719011806.A28830@xor.obsecurity.org> <20010719135423.G69276@sunbay.com> Date: Fri, 3 Aug 2001 09:12:52 -0700 Versions: dmail (solaris) 2.2j/makemail 2.9b Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >@@ -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