From owner-freebsd-hackers Thu Dec 6 12:35: 4 2001 Delivered-To: freebsd-hackers@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 C5C2637B405 for ; Thu, 6 Dec 2001 12:34:57 -0800 (PST) Received: from alliance.research.att.com (alliance.research.att.com [135.207.26.26]) by mail-blue.research.att.com (Postfix) with ESMTP id 531184CED1; Thu, 6 Dec 2001 15:34:57 -0500 (EST) 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 PAA27480; Thu, 6 Dec 2001 15:34:54 -0500 (EST) From: Bill Fenner Received: (from fenner@localhost) by windsor.research.att.com (8.8.8+Sun/8.8.5) id MAA01807; Thu, 6 Dec 2001 12:34:54 -0800 (PST) Message-Id: <200112062034.MAA01807@windsor.research.att.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII To: tinguely@web.cs.ndsu.nodak.edu Subject: Re: UDP checksum error after encapsulating multicast packet Cc: freebsd@hoolan.org, tlambert2@mindspring.com, freebsd-hackers@freebsd.org Date: Thu, 6 Dec 2001 12:34:54 -0800 Versions: dmail (solaris) 2.2j/makemail 2.9b Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG This is a bug in delayed checksum. The checksum in the encapsulated packet is the pseudo-header checksum: mango% ipcksum 0011 0018 c009 c87f e002 0304 correct checksum of the 12 bytes is 9446 1's complement is 6bb9 (6bb9 is the udp checksum in the encapsulated packet). ip_output() has to do the udp checksum if it's going to hand it to ip_mforward(); this is particularly problematic if the outgoing interface is actually going to perform the checksum. It is probably necessary to create a copy of the IP/UDP headers and perform the delayed checksum before handing off to ip_mforward(). Bill To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message