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 BMShome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48AE23FF.9070009>
