Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Dec 2001 10:10:51 -0600 (CST)
From:      mark tinguely <tinguely@web.cs.ndsu.nodak.edu>
To:        freebsd@hoolan.org, tinguely@web.cs.ndsu.nodak.edu, tlambert2@mindspring.com
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: UDP checksum error after encapsulating multicast packet
Message-ID:  <200112061610.fB6GApo88433@web.cs.ndsu.nodak.edu>
In-Reply-To: <200112061522.fB6FMf588025@web.cs.ndsu.nodak.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200112061610.fB6GApo88433>