Small patch to multicast code...

gnn at FreeBSD.org gnn at FreeBSD.org
Fri Aug 22 17:44:06 UTC 2008


At Fri, 22 Aug 2008 03:27:11 +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.
> 
> I'd be concerned that the change to m_dup() (which makes a full mbuf 
> chain copy) rather than m_copym() (which bumps refcounts) is going to 
> eat into the mbuf clusters on fast links, though it's an easy band-aid 
> for the problem.

I gather you mean that a fast link on which also we're looping back
the packet will be an issue?  Since this packet is only going into the
simloop() routine.

> I agree with Luigi that some of the API contract for mbuf(9) doesn't 
> hold any more now that we have TSO and other offload.

I was actually hoping, as the person who last hacked this code, that
you might have a suggestion as to a "right" fix.  

Best,
George


More information about the freebsd-net mailing list