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 [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to