Re: mbuf_outbound_finalize() reports packet length is less than mbuf length
Re: mbuf_outbound_finalize() reports packet length is less than mbuf length
- Subject: Re: mbuf_outbound_finalize() reports packet length is less than mbuf length
- From: Andrew Gallatin <email@hidden>
- Date: Mon, 27 Jul 2009 08:08:05 -0400
Brendan Creane wrote:
Greetings. My interface filter nke is seeing outbound AF_INET packets
with an ip_len that doesn't account for the protocol header. For
example, for an interface that expects the 14 byte eth header at the
beginning of the outbound packet, ip_len is 14 bytes less than the mbuf
length. When I call mbuf_outbound_finalize(), in_delayed_cksum_offset
bails on processing the packet and reports "in_delayed_cksum_offset:
ip_len (XX) doesn't match actual length YY." This seems to only happen
for udp packets, not tcp packets.
I'd prefer to not clutter up the system log with this message. My
question is whether I should do some packet verification before calling
mbuf_outbound_finalize, or if this is a problem either with the entity
creating the packet, or with in_delayed_cksum_offset().
It might be helpful if you could post the exact message you're
seeing from in_delayed_cksum_offset(), as well as the
offset you're passing to mbuf_outbound_finalize(), and some
ancillary data (like what the mbuf chain looks like, the length of
each mbuf, and the pkthdr len). It would
be really helpful if you could attach a raw tcpdump capture file
with just the problematic frame.
Drew
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden