Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mbuf_outbound_finalize bug?




On Dec 20, 2006, at 6:17 PM, Bhavesh Davda wrote:

When calling mbuf_outbound_finalize() to compute the incomplete
TCP/UDP checksums on the mbuf from my iff_output_func (interface
filter output function), I kept getting messages from the kernel
"cksum: out of data".

Looking at the xnu-792.13.8 source, it looks like the underlying
in_cksum_skip, called from in_delayed_cksum_offset, expects the ip_len
field in the IP header to be in host-byte-order, while in reality the
mbuf handed to my iff_output_func had the ip_len field in the IP
header correctly populated in network-byte-order.

What is my iff_output_func to do in such a situation?

This is a known bug and a fix is already in order. Assuming that you call this from an interface filter, and that only the transport checksum is to be recomputed, you should be able to byte-swap the IP length, call mbuf_outbound_finalize() and restore the IP length back to the network-byte order. If the driver offloads IP header checksumming, and if this is an IPv4 packet, then you would need to recompute the IP header checksum yourself prior to sending the packet downstream. Once the fix is made available, you will no longer need to do any of the above.

(Also note that this issue does not exist for PPC.)

Adi


Thanks!

--
Bhavesh P. Davda
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/darwin-kernel/email@hidden

This email sent to email@hidden

Attachment: smime.p7s
Description: S/MIME cryptographic signature

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/darwin-kernel/email@hidden

This email sent to email@hidden

References: 
 >mbuf_outbound_finalize bug? (From: "Bhavesh Davda" <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.