Small patch to multicast code...

Luigi Rizzo rizzo at iet.unipi.it
Fri Aug 22 08:27:47 UTC 2008


On Fri, Aug 22, 2008 at 03:27:11AM +0100, Bruce M. Simpson wrote:
> gnn at freebsd.org 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


More information about the freebsd-net mailing list