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>

index | next in thread | previous in thread | raw e-mail

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


home | help

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