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]"

Reply via email to