Date: Fri, 22 Aug 2008 10:43:57 -0700 From: gnn@FreeBSD.org To: "Bruce M. Simpson" <bms@FreeBSD.org> Cc: Luigi Rizzo <rizzo@iet.unipi.it>, net@FreeBSD.org Subject: Re: Small patch to multicast code... Message-ID: <m2tzdd6j36.wl%gnn@neville-neil.com> In-Reply-To: <48AE23FF.9070009@FreeBSD.org> References: <m27iaa6v43.wl%gnn@neville-neil.com> <20080821203519.GA51534@onelab2.iet.unipi.it> <m23aky6ncl.wl%gnn@neville-neil.com> <48AE23FF.9070009@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
At Fri, 22 Aug 2008 03:27:11 +0100, Bruce M. Simpson wrote: > > 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 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?m2tzdd6j36.wl%gnn>