On Fri, Aug 22, 2008 at 03:27:11AM +0100, Bruce M. Simpson wrote: > [EMAIL PROTECTED] wrote: > >>The only thing i can think of is that it's the UDP checksum, > >>residing beyond hlen, which is overwritten somewhere in the > >>call to if_simloop -- in which case perhaps a better fix is > >>to m_pullup() the udp header as well ? > >> > > > >It is the checksum that gets trashed, yes. > >... > >The m_*() routines actually have reasonable comments, it just seems > >the wrong one was used here. > > > > Actually, m_copy() has been legacy for some time now -- see comments.
The API is undocumented, but in this specific function the reason for using one rather than the other is undocumented. Especially, if you use m_dup() then the call to m_pullup should be unnecessary. That's why I suggested to explain clearly what is wrong in the original code, so even if now we only apply a temporary bandaid (for lack of time, etc.) hopefully later this can be reverted to something more efficient such as pulling up the UDP header as well. cheers luigi _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"