Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Aug 2008 03:27:11 +0100
From:      "Bruce M. Simpson" <bms@FreeBSD.org>
To:        gnn@freebsd.org
Cc:        Luigi Rizzo <rizzo@iet.unipi.it>, net@freebsd.org
Subject:   Re: Small patch to multicast code...
Message-ID:  <48AE23FF.9070009@FreeBSD.org>
In-Reply-To: <m23aky6ncl.wl%gnn@neville-neil.com>
References:  <m27iaa6v43.wl%gnn@neville-neil.com>	<20080821203519.GA51534@onelab2.iet.unipi.it> <m23aky6ncl.wl%gnn@neville-neil.com>

next in thread | previous in thread | raw e-mail | index | archive | help
gnn@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 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.

cheers
BMS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48AE23FF.9070009>