From owner-freebsd-hackers Thu Dec 6 8:10:54 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from web.cs.ndsu.nodak.edu (web.cs.ndsu.NoDak.edu [134.129.125.7]) by hub.freebsd.org (Postfix) with ESMTP id 18A7337B405 for ; Thu, 6 Dec 2001 08:10:52 -0800 (PST) Received: (from tinguely@localhost) by web.cs.ndsu.nodak.edu (8.11.4/8.11.4) id fB6GApo88433; Thu, 6 Dec 2001 10:10:51 -0600 (CST) (envelope-from tinguely) Date: Thu, 6 Dec 2001 10:10:51 -0600 (CST) From: mark tinguely Message-Id: <200112061610.fB6GApo88433@web.cs.ndsu.nodak.edu> To: freebsd@hoolan.org, tinguely@web.cs.ndsu.nodak.edu, tlambert2@mindspring.com Subject: Re: UDP checksum error after encapsulating multicast packet Cc: freebsd-hackers@FreeBSD.ORG In-Reply-To: <200112061522.fB6FMf588025@web.cs.ndsu.nodak.edu> 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 In bad taste to reply to myself...I said: > My best guess is that someone has the UDP src, dst and ports in host > order not net order and on Intel arch. this causes a UDP checksum error. >It may have something to do with this being the originating host, > and wee have a copy of the packet before the net byte order was restored. it apprears from tcp_output.c that the offset and length fields are in host order at the time that mforward is called, not the src, dst, port like I speculated above. in sys/netinet/ip_mroute.c, before you calculate the cksum, you need to use HTONS() or htons() to place these fields in network order. If you need a diff, I can give you one, I unfortunately cannot test it for you. --mark tinguely. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message